我们的应用程序中有一个 React Native TextInput 组件。使用虚拟键盘,按 Enter 键创建新行。如果我们使用硬件键盘(使用 USB OTG 适配器连接到 Android 6 平板电脑),则 Enter 键(键盘中间的大键)不会更改文本,TextInput 仅会失去焦点。 Return 键(普通键盘右侧较小的那个)创建一个新行。
TextInput 的设置非常基本:
<TextInput multiline={true} />
我尝试了 returnKeyType 属性的不同值,但它们都没有创建新行。我是不是错过了什么?
不客气:
blurOnSubmit={true}
我面临着同样的问题,但以下方法对我有用:
returnKeyType='none'
<TextInput
value={activity}
onChangeText={setActivity}
numberOfLines={5}
multiline={true}
style={styles.TextInput}
placeholder={"Start your activity"}
keyboardType="name-phone-pad"
/>
这对我有用
尝试一下!它也适用于线路中间!
<TextInput
placeholder={I18n.t('enterContactQuery')}
value={this.state.query}
onChangeText={text => this.setState({ query: text, allowEditing: true })}
selection = {this.state.selection}
onSelectionChange={(event) => this.setState({ cursorPosition: event.nativeEvent.selection, selection: event.nativeEvent.selection, allowEditing: true })}
onSubmitEditing={() => {
const { query, cursorPosition } = this.state;
let newText = query;
const ar = newText.split('');
ar.splice(cursorPosition.start, 0, '\n');
newText = ar.join('');
if (cursorPosition.start === query.length && query.endsWith('\n')) {
this.setState({ query: newText });
} else if (this.state.allowEditing) {
this.setState({
query: newText,
selection: {
start: cursorPosition.start + 1,
end: cursorPosition.end + 1
},
allowEditing: !this.state.allowEditing
});
}
}}
multiline = {true}
numberOfLines = {10}
blurOnSubmit={false}
editable={true}
// clearButtonMode="while-editing"
/>
constructor(props) {
super(props);
this.state = {
query: '',
cursorPosition: [0,0],
selection: null,
allowEditing: true
}
}
你想要的是
<TextInput placeholder="Enter text..." style={styles.input} keyboardAppearance='dark' blurOnSubmit={false} multiline />