gpt4 book ai didi

react-native - 键盘避免 View 填充错误

转载 作者:行者123 更新时间:2023-12-04 04:02:31 25 4
gpt4 key购买 nike

到小填充正在被 使用KeyboardAvoidingView react 原生 .这导致我的 键盘在输入字段上移动 :
enter image description here

我目前的解决方案
我尝试使用 keyboardVerticalOffset 解决这个问题。
这是来自图像的 View 的渲染函数,它使用了 KeyboardAvoidView:

render() {
return (
<KeyboardAvoidingView
behavior="padding"
key={this.state.keyboardRandomKey}
keyboardVerticalOffset={50}
>
@@ all the other stuff of the design is here @@
</KeyboardAvoidingView>
);
}
}

问题
此图像显示了我在实现之前显示的代码后遇到的问题。红色箭头显示了意外行为。
如您所见,正在添加额外的空间,但它是一个灰色区域。这必须是透明的。不知何故,我无法让它发挥作用。我以前在不同的项目中使用过带有负值的 keyboardVerticalOffset 并且效果很好。
enter image description here

任何想法都值得赞赏

最佳答案

我在键盘上添加了一个隐藏和显示监听器

 componentDidMount() {
this.keyboardDidShowListener = Keyboard.addListener(
'keyboardDidShow',
this.keyboardDidShowListener,
);
}

我创建了一个状态值 keyboardOpen 并在键盘打开时将其设置为 true。
keyboardDidShowListener = e => {
this.setState({
keyboardOpen: true,
keyboardHeight: e.endCoordinates.height,
});
};

如果键盘隐藏 ,我将该值设置为 false
keyboardHideListener = () => {
this.setState({
keyboardAvoidingViewKey: new Date().getTime(),
keyboardOpen: false,
});
};

在 react 返回中,我检查键盘是否打开并相应地使用 marginBottom 重新渲染一些元素:0
if (this.state.keyboardOpen) {
return (
<View style={{ marginBottom: 0 }}>
<RoundTab title="Sign In" onPress={() => this.signIn()} />
</View>
);

结果
enter image description here
还有 添加 View 有一定高度 在 TextInput 之后是添加一些填充并解决问题的简单方法

关于react-native - 键盘避免 View 填充错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47022946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com