KeyboardAvoidingView + ListView

Posted

技术标签:

【中文标题】KeyboardAvoidingView + ListView【英文标题】: 【发布时间】:2017-06-05 09:33:33 【问题描述】:

我有一个提交表单界面,使用ListView组件,并且行包含TextInput组件,我想使用KeyboardAvoidingView以避免键盘cover行中的TextInput,但是它不起作用,该行没有向上移动。

我的代码:

 render() 
    return (
        <KeyboardAvoidingView style=styles.container  behavior='padding'>
            <ListView
                dataSource = this.state.dataSource
                renderRow = this._renderRow.bind(this)
                onEndReachedThreshold = 0
                overflow = 'hidden'
                keyboardDismissMode = 'on-drag'
                removeClippedSubviews = true
            />
        </KeyboardAvoidingView>
    );

【问题讨论】:

【参考方案1】:

我使用了一个模块来解决键盘问题:https://github.com/APSL/react-native-keyboard-aware-scroll-view

你也可以这样使用:

import KeyboardAwareScrollView from 'react-native-keyboard-aware-scroll-view';
render() 
    return (
      <KeyboardAwareScrollView extraHeight=130>
          // your code here
      </KeyboardAwareScrollView>
    );
  

如果遇到任何使用问题,请告诉我。

【讨论】:

在他们提到 android 原生具有此功能的文档中,您可以通过在 AndroidManifest.xml 中设置 windowSoftInputMode 来轻松启用它 并且从他们的模块中他们支持的一些功能也列出

以上是关于KeyboardAvoidingView + ListView的主要内容,如果未能解决你的问题,请参考以下文章

即使删除了行为,KeyboardAvoidingView 也无法在 Android 上运行

使用KeyboardAvoidingView时,react-navigation标题后面的内容

React Native KeyboardAvoidingView 无法正常工作

KeyboardAvoidingView 在本机反应中使用过多的填充来推高内容

在 react native 中使用 KeyboardAvoidingView 时,整个内容都被向上推

无法弄清楚如何正确使用 KeyboardAvoidingView