在CustomScrollView中颤振使用RefreshIndicator

时间:2018-07-13 03:31:09

标签: flutter

我正在使用Flutter v0.5.1

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

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

尝试了更多次后,我发现RefreshIndicator必须在FutureBuilder内,因为如果反转顺序,则RefreshIndicator将重建FutureBuilder并在刷新时显示CircularProgressIndicator。我希望仅显示RefreshIndicator。而且我想在FutureBuilder显示CircularProgressIndicator时在CustomScrollView中使用FutureBuilder显示SliverAppBar

对我有什么想法

谢谢,


p / s:我的英语是sr

2 个答案:

答案 0 :(得分:0)

只需确保,您是否尝试过这种方法? RefreshIndicator-> CustomScrollView->其他银色。它有效,但是您不想这样做,对吧?

答案 1 :(得分:0)

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

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

)