2

我正在制作一个应用程序,在我的服务中,我将添加到窗口管理器布局中,其中包含编辑文本。一切正常,键盘显示等。但是,当我向窗口管理器添加第二个相同的布局时,我的第一个 editext 失去焦点,我无法输入任何内容,或者它没有失去焦点,因为你可以看到一个指针但是键盘没有出现,它只显示最后添加的布局。

我正在像这样向窗口管理器添加视图:

params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_PHONE,
                WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
                PixelFormat.TRANSLUCENT);
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
singleLayout = inflater.inflate(R.layout.single_layout, null);
windowManager.addView(singleLayout, params);

我尝试使用该代码手动打开键盘:

InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);

但它没有用,这个方法也没有用:

public static void forceFocusOnView(final View view) {
        if (view == null)
            return;
        view.post(new Runnable() {
            public void run() {
                view.clearFocus();
                view.post(new Runnable() {
                    public void run() {
                        view.requestFocus();
                    }
                });
            }
        });
    }

它始终仅在最后添加的布局中显示键盘,感谢您提供任何解决方案。

4

0 回答 0