我正在尝试为特定于域的输入模拟软件键盘。我正在使用PopupWindow收集输入并将其传输到底层的EditText。不幸的是,PopupWindow是模态的,因此用户无法使用通常的软件键盘从一个EditText切换到另一个EditText。我已经研究过设置FLAG_NOT_TOUCH_MODAL
标志,但我不确定何时或应该应用什么来获取我正在寻找的行为。
我启动PopupWindow的代码如下:
myEdit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
pw = myKeyboard.getPopupWindow((EditText) v);
pw.showAtLocation(Main.this.findViewById(R.id.main), Gravity.BOTTOM, 0, 0);
}
});
我尝试将其更改为以下内容,但这只会导致运行时异常: java.lang.RuntimeException:查看android.widget.LinearLayout@40526268已添加,但已有父级
myEdit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
pw = myKeyboard.getPopupWindow((EditText) v);
WindowManager.LayoutParams wlp = getWindow().getAttributes();
wlp.gravity = Gravity.BOTTOM;
wlp.flags = wlp.flags | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
getWindow().addContentView(pw.getContentView(), wlp);
pw.showAtLocation(Main.this.findViewById(R.id.main), Gravity.BOTTOM, 0, 0);
}
});
我也在调查setOutsideTouchable,但到目前为止我还没有到达任何地方。
关于如何创建无模式PopupWindow的任何指示?我愿意使用其他一些无模式小部件。
答案 0 :(得分:0)
View
并将其粘贴在布局中,然后隐藏/显示它?