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>