使用 Flutter RefreshIndicator,您可以在 onRefresh 中判断它是从顶部还是底部被拉动的吗?

With a Flutter RefreshIndicator can you tell which way it was pulled, from top or bottom in onRefresh?

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

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

我认为目前无法通过 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();
       }
     });
});