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