如何在不需要 ScrollView 的视图上使用 RefreshControl?

Dan*_*Dan 5 flexbox react-native

我有一个 React Native 视图,我希望允许用户通过下拉来刷新,该视图包含适合一个屏幕的固定内容,无需滚动,并且我使用了 flex 来定位元素以利用保持屏幕。

快速谷歌告诉我我需要一个RefreshControl ,但似乎它必须与ScrollView结合使用。

当我尝试将这两个控件应用到我的视图时,我得到了不需要的效果:

  • 我不需要的滚动条,尽管可以通过道具禁用它们
  • Flex 现在以不同的方式响应,Flex 项目不会扩展到容器,这是有道理的,因为它是一个可滚动的容器。

帮助 :)

tva*_*ven 5

我确实会在 ScrollView 中重用 RefreshControl,而不是自己创建 RefreshControl 行为。

正如您所提到的,可以通过设置正确的props来隐藏滚动指示器。此外,还可以使用scrollEnabled标志来禁用滚动。

ScrollView 使用内置的内容容器来包装所有视图。您也可以为此视图设置Flex 样式道具。

<ScrollView contentContainerStyle={{flex: 1}}>
  {/* child views */}
</ScrollView>
Run Code Online (Sandbox Code Playgroud)

  • 设置 `scrollEnabled={false}` 会阻止刷新控件显示/工作 (3认同)