Android - 触发adjustResize

时间:2018-02-23 18:49:37

标签: android react-native

我将表单包裹在<ScrollView>中,并设置了我的清单android:windowSoftInputMode="adjustResize"(默认为本机反应)。现在,当我用手指触摸事件手动聚焦一个字段,并且字段被键盘覆盖时,它成功滚动到我刚按下的字段。

但是,如果我务实地聚焦下一个字段(refToTextInput.focus()),则它不会滚动到下一个字段(焦点确实发生)。我需要滚动才能发生。

如何再次触发adjustResize,以便滚动查看我关注的下一个字段?

手动对焦 - 好

以下是手动聚焦密码字段,截屏视频:

程序化焦点 - 糟糕 - 失败

但是,如果我的重点是“用户名”字段,那么我会在用户名字段的this.refToPassword.focus()onSubmitEditing。焦点移动到密码输入,键盘不闪烁(这是完美的我不希望键盘闪烁)。但是,滚动视图不会滚动到此字段。以下是程序化焦点的截屏视频:

1 个答案:

答案 0 :(得分:2)

这不是我提议的确切解决方案。但是,您可能会将此视为一种解决方法。

您可能会考虑以编程方式隐藏键盘,并在下一个EditText字段中以编程方式请求焦点时再次显示键盘。因此,在下一个字段中请求焦点的完整伪代码将是类似的。

public void requestFocusToNextField(View view) {
    view.requestFocus(); 
    hideKeyboard();
    showKeyboard();
}

希望有所帮助!