我正在制作一个应用程序,在我的服务中,我将添加到窗口管理器布局中,其中包含编辑文本。一切正常,键盘显示等。但是,当我向窗口管理器添加第二个相同的布局时,我的第一个 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();
}
});
}
});
}
它始终仅在最后添加的布局中显示键盘,感谢您提供任何解决方案。