React Native TextInput:使用硬件键盘 Enter 键没有换行符

问题描述 投票:0回答:5

我们的应用程序中有一个 React Native TextInput 组件。使用虚拟键盘,按 Enter 键创建新行。如果我们使用硬件键盘(使用 USB OTG 适配器连接到 Android 6 平板电脑),则 Enter 键(键盘中间的大键)不会更改文本,TextInput 仅会失去焦点。 Return 键(普通键盘右侧较小的那个)创建一个新行。

TextInput 的设置非常基本:

<TextInput multiline={true} />

我尝试了 returnKeyType 属性的不同值,但它们都没有创建新行。我是不是错过了什么?

react-native keyboard textinput android-hardware-keyboard
5个回答
9
投票

不客气:

blurOnSubmit={true}


4
投票

我面临着同样的问题,但以下方法对我有用:

returnKeyType='none'

1
投票
<TextInput 
    value={activity}
    onChangeText={setActivity}
    numberOfLines={5}
    multiline={true}
    style={styles.TextInput}
    placeholder={"Start your activity"}
    keyboardType="name-phone-pad"
/>

这对我有用


0
投票

尝试一下!它也适用于线路中间!

<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
}

}


0
投票

你想要的是

<TextInput placeholder="Enter text..." style={styles.input} keyboardAppearance='dark' blurOnSubmit={false} multiline />

© www.soinside.com 2019 - 2024. All rights reserved.