无法从一个 TextInput 点按到另一个
Posted
技术标签:
【中文标题】无法从一个 TextInput 点按到另一个【英文标题】:Can't tap from one TextInput to another 【发布时间】:2016-02-12 03:01:06 【问题描述】:当我专注于一个 TextInput
时,点击另一个 TextInput
字段并没有达到我的预期(将 focus 更改为 TextInput
)。
相反,它只是模糊当前的TextInput
,需要第二次点击才能聚焦下一个TextInput
。
有没有办法做到这一点,或者这是 React Native 当前的缺点?
示例代码:
class MyTest extends Component
render()
return (
<ScrollView style=styles.container>
<View>
<TextInput style=styles.textInput />
<TextInput style=styles.textInput />
</View>
</ScrollView>
);
const styles = StyleSheet.create(
container:
flex: 1,
backgroundColor: '#ddd',
paddingTop: 64
,
textInput:
backgroundColor: '#fff',
borderColor: '#000',
borderWidth: 1,
height: 46,
paddingLeft: 10
);
事实证明,当输入字段位于 ScrollView 中时,它们的行为与我上面描述的一样(您不能只从一个字段点击到另一个字段)。我尝试将 TextInputs 包装在 View 中以解决此问题,但没有奏效。
【问题讨论】:
你能在你的帖子中包含一些相关代码吗? 【参考方案1】:您需要将keyboardShouldPersistTaps=true
添加到您ScrollView。
keyboardShouldPersistTaps bool:
当为 false 时,当键盘向上时在焦点文本输入之外点击会关闭键盘。当为真时,滚动视图将 不捕捉水龙头,键盘不会自动关闭。这 默认值为 false。
【讨论】:
现在已更新,因此请使用 3 个新的可能值(“always”|“never”|“handled”)中的“always”,如:reactnative.dev/docs/scrollview#keyboardshouldpersisttaps【参考方案2】:您可以通过 TextInput 委托方法使用 Resign First Responder
【讨论】:
以上是关于无法从一个 TextInput 点按到另一个的主要内容,如果未能解决你的问题,请参考以下文章
无法为动态创建的 react-native TextInput 保存值
使 React Native Text 组件在 Android 上的 TextInput 内不占用空间
React Native 不显示来自 TextInput 的 Datepicker
React Native:无法使用 ref 在 returnKeyType="next" 上切换到下一个 TextInput