Android 如何在react native中将文本输入附加到键盘

Android 如何在react native中将文本输入附加到键盘,android,ios,keyboard,react-native,Android,Ios,Keyboard,React Native,我正在用react native构建一个应用程序,目标是iOS和Android。 其中一个功能是将文本输入连接到键盘。 其工作方式是文本输入位于屏幕底部。触摸时-键盘打开,文本输入以相同的速度向上或向下设置动画(当它们连接在一起时)。 现在,我使用onkeyboard将显示,而onkeyboard将隐藏,并设置文本输入的动画。问题是它的移动速度不同。 基本上,我正在尝试这样做: 任何建议都会很有帮助。我能找到的最接近键盘动画的方法是使用layoutaimation: import React


我正在用react native构建一个应用程序,目标是iOS和Android。
其中一个功能是将文本输入连接到键盘。
其工作方式是文本输入位于屏幕底部。触摸时-键盘打开,文本输入以相同的速度向上或向下设置动画(当它们连接在一起时)。
现在,我使用
onkeyboard将显示
,而
onkeyboard将隐藏
,并设置文本输入的动画。问题是它的移动速度不同。
基本上,我正在尝试这样做:


任何建议都会很有帮助。

我能找到的最接近键盘动画的方法是使用
layoutaimation

import React, { LayoutAnimation } from 'react-native';

componentWillMount() {
  DeviceEventEmitter.addListener('keyboardWillShow', this.keyboardWillShow.bind(this));
  DeviceEventEmitter.addListener('keyboardWillHide', this.keyboardWillHide.bind(this));
}

keyboardWillShow(e) {
  const visibleHeight = Dimensions.get('window').height - e.endCoordinates.height;
  LayoutAnimation.configureNext(LayoutAnimation.create(
    e.duration,
    LayoutAnimation.Types[e.easing]
  ));
  this.setState({ visibleHeight });
}
此.state.visibleHeight
管理整个
容器高度

当然,不要忘记停止监听键盘事件:

componentWillUnmount() {
  DeviceEventEmitter.removeAllListeners('keyboardWillShow');
  DeviceEventEmitter.removeAllListeners('keyboardWillHide');
}

Cf AnimationsLayout源代码:

使用react native的键盘视图 及 像

在渲染函数中嵌套
视图
文本输入

<KeyboardAvoidingView behavior='padding'>
  <View style={styles.textInputContainer}>
    <TextInput
      value={this.state.data}
      style={styles.textInput}
      onChangeText={this.handleChangeData}
    />
  </View>
</KeyboardAvoidingView>

它会处理好的

<KeyboardAvoidingView behavior='padding'>
  <View style={styles.textInputContainer}>
    <TextInput
      value={this.state.data}
      style={styles.textInput}
      onChangeText={this.handleChangeData}
    />
  </View>
</KeyboardAvoidingView>