我正在努力达到与原生“笔记”应用相同的效果。基本上,我有一个文本输入,覆盖95%的屏幕,我在底部有一个小按钮。点击按钮一次应触发按钮的onPress
事件。相反,点击只会模糊文本输入,我必须再次点击按钮才能触发它onPress
事件。
我还想知道即使输入模糊,如何强制键盘保持打开状态。
感谢。
答案 0 :(得分:1)
这个问题的一些解决方法已发布在Github上(我认为你也发布了这个问题)。
为了帮助遇到此问题的其他人,您可以在此处找到完整的讨论:
https://github.com/facebook/react-native/issues/4229
在我的情况下,问题是由<ScrollView/>
包装我的输入和提交按钮引起的。
将以下属性添加到ScrollView使我可以提交,但滚动仍然会解除键盘。
<ScrollView
keyboardShouldPersistTaps={true}
keyboardDismissMode='on-drag'
ref = 'scrollView'
automaticallyAdjustContentInsets={false}
horizontal={false}
style={styles.scrollView}>
{pagecontent}
...
</ScrollView>
答案 1 :(得分:1)
任何ScrollView都会关闭键盘。 如果您使用嵌套元素,请不要忘记将属性添加到父scrollView keyboardShouldPersistTaps =“always”。并且在提交结束时,为键盘添加 blurOnSubmit = {false} 时不会闪烁。
<ScrollView keyboardShouldPersistTaps="handled">
<ScrollView keyboardShouldPersistTaps="always">
<TextInput
placeholder="First field"
returnKeyType="next"
blurOnSubmit={false}
onSubmitEditing={() => {
this.textInput.focus();
}}
/>
<TxtInput
placeholder="Second"
getRef={(e) => {
this.textInput = e;
}}
returnKeyType="done"
/>
</ScrollView>
</ScrollView>
在RN v 0.55.3中工作