javascript - 使用 React Native 打开键盘时更新 ScrollView

标签 javascript reactjs react-native

我想知道如何在使用 React Native 打开键盘时更新 ScrollView ?

我尝试在“ScrollView”中使用“onContentSizeChange”,没问题,但是当我打开键盘时, ScrollView 没有更新(底部)

当我单击我的输入以发送磁带文本 (1) 时,当键盘打开时 ScrollView 不会更新 (2)。我想更新我的 ScrollView (3)。

enter image description here

MessageList.js

export default class MessageList extends React.Component {
    render() {
        return (
            <View style={MessageListStyles.container}>
                <ScrollView
                    ref={ref => this.scrollView = ref}
                    onContentSizeChange={(contentWidth, contentHeight)=>{
                        this.scrollView.scrollToEnd({animated: true});
                    }}
                    contentContainerStyle={{
                        flexGrow: 1,
                        justifyContent: 'space-between'
                    }}>
                      <Message sender="bot" />
                      <Message sender="bot" />
                      <Message sender="bot" />
                      <Message sender="bot" />
                      <Message sender="bot" />
                      <Message sender="bot" />
                      <Message sender="bot" />
                </ScrollView>
            </View>
        );
    }
}

最佳答案

您的目标是在键盘出现时将 ScrollView 移开吗?在这种情况下,您使用 KeyboardAvoidingView .它根据您的需要添加底部或顶部填充。

或者,您可以添加一个在键盘打开后触发的监听器,并将您的 scrollToEnd 代码放在那里:keyboardDidShowListener

关于javascript - 使用 React Native 打开键盘时更新 ScrollView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57383274/

相关文章:

javascript - 使用 toggleClass 暂停/播放 YouTube 视频 API

javascript - 在 ReactJS 中隐藏条件文本

iOS 应用程序被拒绝 - 指南 2.3.1 - 性能

javascript - 网站滚动问题

javascript - 仅使用javascript动态添加div

javascript - react 中静态部分的条件渲染 - MERN

javascript - react native : How do payments among users in mobile marketplace app work?

javascript - 如何减少 expo 项目中的 apk 大小?

javascript - 从 JavaScript 使用时如何确保释放 wasm 内存

javascript - 标识符 "aa_bb"不是驼峰式