1

我在我的顶部 TabView 的一个页面内(来自react-native-tab-view)呈现水平 FlatList (来自react-native-gesture-handler )

我遇到的主要问题是 FlatList 滚动“优先级”大于 TabView 的滚动“优先级”,所以如果我想滑动顶部的 TabView,我必须将手指放在 FlatList 之外(这不是很专业)。

这是平面列表代码:

<FlatList
  data={data}
  renderItem={renderItem}
  horizontal
  pagingEnabled
  showsHorizontalScrollIndicator={false}
  style={styles.container}
/>

而 TabView 的代码:

<TabView
  style={styles.tabView}
  renderTabBar={renderTabBar}
  navigationState={{ index, routes }}
  renderScene={renderScene}
  onIndexChange={setIndex}
  initialLayout={initialLayout}
  removeClippedSubviews={false} // Pd: Don't enable this on iOS where this is buggy and views don't re-appear.
  swipeEnabled={true}
  swipeVelocityImpact={0.2}
  gestureHandlerProps={{
    activeOffsetX: [-30, 30], // To solve swipe problems on Android
  }}
/>

有什么方法可以让用户在滚动子组件(水平 FlatList)时滑动父组件(TabView)

4

2 回答 2

0

如果是这样,为什么需要将 flatList 组件作为水平可滚动组件?

无论如何,我找到了一个有点棘手的解决方案:将 flatList 的 renderItem 的整个组件结果包装为 <TouchableWithoutFeedback/>.

于 2021-05-28T13:23:20.280 回答
0

您是否尝试在 FlatList 中将滚动启用设置为 false?

https://reactnative.dev/docs/scrollview#scrollenabled

于 2021-02-18T07:40:37.533 回答