【问题标题】:How do to use RefreshControl on a view that does not require ScrollView?如何在不需要 ScrollView 的视图上使用 RefreshControl?
【发布时间】:2019-09-22 18:18:59
【问题描述】:

我有一个 React Native View,我想允许用户通过下拉刷新,这个 View 包含固定内容,无需滚动就可以放在一个屏幕上,我使用 flex 将元素定位到利用了保持屏幕。

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

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

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

帮助:)

【问题讨论】:

    标签: react-native flexbox


    【解决方案1】:

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

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

    一个 ScrollView 使用一个内置的内容容器来包装里面的所有视图。您也可以为此视图设置flex style props

    <ScrollView contentContainerStyle={{flex: 1}}>
      {/* child views */}
    </ScrollView>
    

    【讨论】:

    • 设置 scrollEnabled={false} 阻止 refreshControl 显示/工作
    • @AngelS.Moreno 是对的,设置 scrollEnabled={false} 将不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多