我将表单包裹在<ScrollView>
中,并设置了我的清单android:windowSoftInputMode="adjustResize"
(默认为本机反应)。现在,当我用手指触摸事件手动聚焦一个字段,并且字段被键盘覆盖时,它成功滚动到我刚按下的字段。
但是,如果我务实地聚焦下一个字段(refToTextInput.focus()
),则它不会滚动到下一个字段(焦点确实发生)。我需要滚动才能发生。
如何再次触发adjustResize
,以便滚动查看我关注的下一个字段?
以下是手动聚焦密码字段,截屏视频:
但是,如果我的重点是“用户名”字段,那么我会在用户名字段的this.refToPassword.focus()
上onSubmitEditing
。焦点移动到密码输入,键盘不闪烁(这是完美的我不希望键盘闪烁)。但是,滚动视图不会滚动到此字段。以下是程序化焦点的截屏视频:
答案 0 :(得分:2)
这不是我提议的确切解决方案。但是,您可能会将此视为一种解决方法。
您可能会考虑以编程方式隐藏键盘,并在下一个EditText
字段中以编程方式请求焦点时再次显示键盘。因此,在下一个字段中请求焦点的完整伪代码将是类似的。
public void requestFocusToNextField(View view) {
view.requestFocus();
hideKeyboard();
showKeyboard();
}
希望有所帮助!