React Native Text Input Blur Focus on Tap Touchable



我有一个标准的TextInput包装在滚动视图中。当我在文本输入之外点击时,焦点会像预期的那样模糊。

然而,有时我在文本输入中点击一个按钮,期望按钮立即做出响应。然而,第一次点击总是会使文本输入失去焦点。

预期的行为是第一次点击会自动取消文本输入的焦点,同时对按钮点击做出响应。有办法做到这一点吗?

很可能您需要将ScrollViewkeyboardShouldPersistTaps道具从默认的never更改为。。。到handled。。。并手动dismiss您的button处理器上的键盘。。。

<ScrollView keyboardShouldPersistTaps="always">...</ScrollView> 

'never'(默认值),当键盘向上时,键盘将关闭。当这种情况发生时,孩子们不会收到敲击声。

"始终",键盘不会自动关闭,并且滚动视图不会捕捉到轻击,但滚动视图的子级可以捕捉到水龙头。

"已处理",敲击时键盘不会自动关闭由滚动视图的子级处理(或由祖先)。

编辑

<ScrollView
keyboardShouldPersistTaps="handled" // <-- here
>
<TextInput />
<Button
title="Click Me"
onPress={() => {
Keyboard.dismiss(); // <--- here
Alert.alert('Button', 'Clicked!');
}}
/>
</ScrollView>

最新更新