【问题标题】:Flutter use RefreshIndicator in CustomScrollViewFlutter 在 CustomScrollView 中使用 RefreshIndicator
【发布时间】:2018-12-21 08:53:13
【问题描述】:

我正在使用 Flutter v0.5.1

我想用 SliverAppBar 构建一个应用程序,在向上滚动时自动隐藏,向下滚动时浮动。我使用带有 sliverList 的 CustomScrollView 是 SliverAppBar 和 MyWidget1,这是一个 FutureBuilder,在加载数据时显示 CircularProgressIndicator,在成功加载数据时显示 MyWidget2。 MyWidget2 是一个 RefreshIndicator,用户可以拉取刷新数据。我期望的布局是 CustomScrollView -> (SliverAppBar and FutureBuilder -> RefreshIndicator)

问题是我不能在 CustomScrollView 中使用 RefreshIndicator,因为 CustomScrollView 需要一个带有 RenderSliv​​er 的 SliverList 而 RefreshIndicator 不是。

经过多次尝试,我发现 RefreshIndicator 必须在 FutureBuilder 中,因为如果将顺序颠倒,RefreshIndicator 将重建 FutureBuilder 并在刷新时显示 CircularProgressIndicator。我希望只显示 RefreshIndicator。当 FutureBuilder 显示 CircularProgressIndicator 时,我想在 CustomScrollView 中使用 FutureBuilder 来显示 SliverAppBar

对我有任何想法

谢谢大家,


p/s: sr 代表我的英语

【问题讨论】:

    标签: flutter


    【解决方案1】:

    如果您想在 sliverAppbar 下方显示刷新指示器,请在刷新指示器中指定 edgeOffset 参数,它看起来就像您在自定义滚动视图中的刷新指示器。例如:

    RefreshIndicator(
       edgeOffset: yourAppBarHeight, 
       onRefresh: () {
           //something
       }
       child: CustomScrollView(
           slivers: [
               SliverAppBar(),
               SliverList(),
           ]
       )
    

    )

    【讨论】:

      【解决方案2】:

      请确定,您是否尝试过这样的操作? RefreshIndicator -> CustomScrollView -> 其他银牌。它有效,但你不想这样做,对吧?

      【讨论】:

      • 我也有 FutureBuilder。如果像 RefreshIndicator -> CustomScrollView -> other silvers 这样的订单,FutureBuilder 将是 RefreshIndicator 的子级,当我拉刷新时,它将重建 FutureBuilder,我不想这样,我只想使用 RefreshIndicator 更新数据,这我之前用 FutureBuilder 加载过
      猜你喜欢
      • 1970-01-01
      • 2021-08-24
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多