首页 > 解决方案 > 使用 Flutter RefreshIndicator,您能分辨出它是从 onRefresh 的顶部还是底部拉出的?

问题描述

使用 Flutter,我将 RefreshIndicator 与我的列表视图一起使用,效果很好。我想在从顶部下拉时刷新数据,如果从底部向上拉,我想加载更多分页数据。有没有办法在 onRefresh 回调中判断它是从顶部还是从底部拉出来的?

class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
  return RefreshIndicator(
    onRefresh: () {},
    child: ListView ...

标签: widgetflutterpull-to-refreshswiperefreshlayout

解决方案


我认为目前通过这种onRefresh方法是不可能的。

也许您可以通过以下方式实现您想要的ScrollController

1)定义它:var _scrollController = new ScrollController();

2)在小部件initState覆盖上添加您的滚动控制器
侦听器并检查元素是否已滚动,如果是,则获取他滚动的方向。此外,如果您希望它在滚动到达列表末尾后加载更多内容,您也可以在此处执行此操作。

_scrollController.addListener(() {
    print(lastOffset < _scrollController.position.pixels ? "down" : "up");
    lastOffset = _scrollController.position.pixels;
    if (_scrollController.position.pixels ==
        _scrollController.position.maxScrollExtent) {
        // loadMoreContent();
       }
     });
});

推荐阅读