Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native ScrollView内部的平面列表不';卷轴_React Native - Fatal编程技术网

React native ScrollView内部的平面列表不';卷轴

React native ScrollView内部的平面列表不';卷轴,react-native,React Native,我有4个FlatLists,其中maxHeight设置为200在滚动视图中 <ScrollView> <FlatList/> <FlatList/> <FlatList/> <FlatList/> </ScrollView> 我遇到了一个非常类似的问题,直到我在一篇关于react本机项目的GitHub问题的非常有用的评论中发现了一个几乎完整的解决方案: 问题是父组件是唯一注册滚动事件的组件。解决方案是根据媒

我有4个
FlatList
s,其中
maxHeight
设置为
200
滚动视图中

<ScrollView>
  <FlatList/>
  <FlatList/>
  <FlatList/>
  <FlatList/>
</ScrollView>

我遇到了一个非常类似的问题,直到我在一篇关于react本机项目的GitHub问题的非常有用的评论中发现了一个几乎完整的解决方案:

问题是父组件是唯一注册滚动事件的组件。解决方案是根据媒体的位置,根据上下文决定哪个组件应该实际处理该事件

您需要稍微修改您的结构,以:

<View>
<ScrollView>
    <View>
        <FlatList/>
    </View>
    <View>
        <FlatList/>
    </View>
    <View>
        <FlatList/>
    </View>
    <View>
        <FlatList/>
    </View>
</ScrollView>
</View>
希望你觉得这很有用

我们可以为子平面列表/滚动视图组件使用内置的道具

<FlatList nestedScrollEnabled />


这仅适用于Android(iOS默认支持嵌套滚动)。

尝试将平面列表设置为嵌套


nestedScrollEnabled={true}

我修复了nested
FlatList
无法在android上滚动项目的问题,只需导入
FlatList

从“反应本机手势处理程序”导入{FlatList};
如果这不起作用,请尝试导入
滚动视图

从'react native'导入{ScrollView};
//或
从“反应本机手势处理程序”导入{ScrollView};

您需要处理这些导入,至少在我的情况下是有效的。

这是最简单的答案,需要零配置。。它就像一个符咒

<ScrollView horizontal={false}
    <ScrollView horizontal={true}>
        <Flatlist
          ...
        />
    </ScrollView>
</ScrollView>

没问题!我必须自己解决同样的问题,所以我想我还是分享解决方案吧。你在这些元素上使用什么样的值来设计样式?@EricLeFort 2件事:1。第二个答案要好得多。在代码中:“this.setState({enableCrollViewScroll:false});if(this.\u myScroll.contentOffset==0&&this.state.enableCrollViewScroll==false){”setState是一个异步函数,不能保证在这个.state.enableScrollViewScroll上得到一个假值后,该行可以滚动。事实上,几乎可以肯定它不会有假值。这段代码运行良好,但当我切换到另一个视图时,它不会滚动,但当我在2019年再次滚动时,它会滚动七次,这是唯一的解决方法据我所知。尝试使用“nestedscrollenabled”时,它无法正常工作。它帮助了家长和孩子,我需要在iOS上为ScrollView内的平面列表添加此选项。这正是我需要的解决方案:)Cheers对我无效。对我无效。重复回答:DDoS对我无效必须对所有Scr执行此操作此外,FlatList上的“可滚动”功能取决于高度,它被设置为:style={{height:Dimensions.get('window').height/1.5}}
<FlatList nestedScrollEnabled />
<ScrollView horizontal={false}
    <ScrollView horizontal={true}>
        <Flatlist
          ...
        />
    </ScrollView>
</ScrollView>