美文网首页
ListView滑动到底部 2023-08-09 周三

ListView滑动到底部 2023-08-09 周三

作者: 勇往直前888 | 来源:发表于2023-08-08 18:06 被阅读0次

    简介

    表格移动到顶部或者移动到底部,是常见的一种需求。

    移动到顶部

    • ListView有一个属性ScrollController,专门用来处理滑动等相关的事宜。有关滑动的方法有两个。
      Future<void> animateTo(
        double offset, {
        required Duration duration,
        required Curve curve,
      })
    
    void jumpTo(double value) 
    

    区别就是一个带动画,一个不带动画

    • 大多数时候,一般用带动画的那个。不过,只要有可能,应该用不带动画的那个,效率高。

    • 移动到顶部很简单,上面两个方法,给参数0就可以了。

    怎么移动到底部?

    • 一开始,会给一个比较大的值,比如1000,2000之类;很多时候效果跟移动到底部差不多,不过当内容长度超过这个数值的时候就悲剧了,并没有真正到底;

    • 后来,直接给参数double.infinity;执行的效果是直接崩溃。Flutter崩溃的时候还真不多(内存超过2G会闪退),大多数时候是白屏,但是这个时候是直接闪退。

    • ScrollPositionScrollController中记忆滑动位置的辅助类。其中有两个属性表示最小和最大的可滑动位置。

      @override
      double get minScrollExtent => _minScrollExtent!;
      double? _minScrollExtent;
    
      @override
      double get maxScrollExtent => _maxScrollExtent!;
      double? _maxScrollExtent;
    
    • 所以,滑动到底部可以这样写:
    /// 滑动到底部
    listController.jumpTo(listController.position.maxScrollExtent);
    
    • 响应地,滑动到顶部也可以不用给参数0了,可以依样画葫芦
    /// 滑动到顶部
    listController.jumpTo(listController.position.minScrollExtent);
    

    参考文章

    Flutter基础之ListView

    相关文章

      网友评论

          本文标题:ListView滑动到底部 2023-08-09 周三

          本文链接:https://www.haomeiwen.com/subject/vxznpdtx.html