Android:包含 textInput 的 ScrollView 不滚动

Posted

技术标签:

【中文标题】Android:包含 textInput 的 ScrollView 不滚动【英文标题】:Android: ScrollView which contains textInput not scrolling 【发布时间】:2017-10-20 23:06:18 【问题描述】:

我有一个包含太多文本输入的滚动视图。一切正常,直到我将 textAlign: 'right' 添加到 TextInput 样式。之后 ScrollView 不响应滚动。这个问题刚刚发生在android中,在ios中它按预期工作。我在snack.expo中添加了一个简单的代码

  render() 
    let TextInput2 = (
      <TextInput
        style=
          flex: 1,
          textAlign: 'right',
          height: 50
        
        placeholder="placeholder"
      />
    );
    return (
      <ScrollView>
        TextInput2
        TextInput2
        TextInput2
        TextInput2
        TextInput2
        TextInput2
        TextInput2
        TextInput2
        TextInput2
        TextInput2
        TextInput2
        TextInput2
        TextInput2
        TextInput2
      </ScrollView>
    );
  

【问题讨论】:

【参考方案1】:

如果您在ScrollView 中有太多项目,那么也许您应该考虑使用ListView。我有一个类似的问题。在太多项目滚动后的某个时刻,ScrollView 在 Android 中首先开始失败。我认为 i-devices 在渲染 react native 组件方面有更好的优化,这可以防止它们过早失败。

【讨论】:

感谢您的回答。问题是 textAlign: 对。我添加此代码只是为了显示问题。【参考方案2】:

我不确定为什么 textAlign: 'right' 会导致这种情况,但我注意到 ios 和 android TextInput 之间存在很大差异。在 Android 上,如果 TextInput 框小于字体大小,它会在自身内部创建一个可滚动的 TextInput,从而阻止滚动视图成为响应者。尝试增加每个 TextInput 的高度和宽度,以确保不是这种情况。

【讨论】:

以上是关于Android:包含 textInput 的 ScrollView 不滚动的主要内容,如果未能解决你的问题,请参考以下文章

通过使用为textInput阵营本地更新在状态阵列对象的元素

TextInput - Android与iOS中的不同高度

TextInput键入的文本未出现在android上

ScrollView嵌套TextInput Android无法滑动

ScrollView嵌套TextInput Android无法滑动

React Native Android - 如何能够滚动 TextInput