【问题标题】:Update scrollview when keyboard is open with React Native使用 React Native 打开键盘时更新滚动视图
【发布时间】:2019-08-06 20:06:17
【问题描述】:

我想知道如何在 React Native 打开键盘时更新滚动视图?

我尝试在“ScrollView”中使用“onContentSizeChange”,没关系,但是当我打开键盘时,滚动视图没有更新(底部)

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

消息列表.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>
        );
    }
}

【问题讨论】:

    标签: javascript reactjs react-native


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。请问如何添加底部或顶部填充?
    • 查看示例页面上的“行为”属性。它可以具有值“填充”(添加填充底部/顶部,取决于键盘的位置)、“位置”(向上/向下移动)或“高度”(缩放内容)。
    猜你喜欢
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 2020-12-06
    相关资源
    最近更新 更多