我正在尝试在屏幕底部创建EditText并打开键盘(然后此EditText将使用RelativeLayout + ALIGN_PARENT_BOTTOM移动到键盘上方),它可以正常使用SetContentView,但使用addContentView,RelativeLayout + ALIGN_PARENT_BOTTOM对我不起作用键盘与EditText重叠。
在某种程度上,我想独立生成这个临时的EditText屏幕上显示的布局,所以如果我按任何布局上的任何按钮,我调用此函数在屏幕底部创建一个临时的EditText并带上键盘。
我无法更改整个主布局,因为此布局是由Unity3D生成的。我需要一种方法来生成这个EditText并独立行动,布局正在屏幕上显示。
我的代码:
public void openInput()
{
runOnUiThread(new Runnable()
{
EditText inputName = new EditText(context);
inputName.setInputType(InputType.TYPE_CLASS_TEXT);
inputName.setFilters(new InputFilter[] { new InputFilter.LengthFilter(40)} );
RelativeLayout.LayoutParams editTextParams = new RelativeLayout.LayoutParams(600, RelativeLayout.LayoutParams.WRAP_CONTENT);
editTextParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
editTextParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
RelativeLayout relativeLayout = new RelativeLayout(context);
relativeLayout.addView(inputName, editTextParams);
addContentView(relativeLayout, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
inputName.requestFocus();
InputMethodManager msg = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
msg.showSoftInput(inputName, InputMethodManager.SHOW_IMPLICIT);
});
}
知道如何解决这个问题吗?
由于
答案 0 :(得分:0)
将整个布局放在滚动视图中(作为设置内容视图)
然后当你执行addContentView时,布局将向上滚动到焦点视图,而不是向上推视图
答案 1 :(得分:0)
我正在使用弹出对话框窗口逐个编辑长参数列表。这也有助于为正在编辑的参数添加更多有用的信息,如说明,提示等......