Flutter iOS:状态栏上的点击无法滚动到顶部

时间:2018-11-22 04:31:48

标签: flutter

在首页布局中使用的CustomScrollView 如果您想上拉并加载更多内容,则必须定义一个ScrollController并将其传递给CustomScrollView。

我的代码

ScrollController _scrollController = new ScrollController();
  @override
  void initState() {
    super.initState();
    _scrollController.addListener(() {
      if (_scrollController.position.pixels >=
          _scrollController.position.maxScrollExtent) {
        _loadMoreData();
      }
    });
  }

  @override
  void dispose() {
    super.dispose();
    _scrollController.dispose();
  }
new CustomScrollView(
  controller: _scrollController,
  slivers: <Widget>[....],
)

但是,如果这样做,则当加载大量数据时,点击顶部的状态栏将不会滚动到顶部! 如果您在CustomScrollView中删除控制器,或者更改为PrimaryScrollController.of(context)

new CustomScrollView(
  controller: PrimaryScrollController.of(context),
)

这没关系! 为什么???

1 个答案:

答案 0 :(得分:1)

因为Flutter引擎试图尽可能地模仿OS行为。此轻击手势在iOS上称为"return-to-top",而在Android上根本不存在。此外,为了尽可能接近iOS应用程序的行为,此手势仅触发PrimaryScrollController类的滚动动画。

作为参考,在iOS本机应用程序开发中,如果屏幕上有多个滚动视图且scrollsToTop设置为true(source),则滚动到顶部的手势无效。

相关问题