flutter 置顶 ListView

本文有参考,链接找不到了

1.定义controller

final ScrollController _scrollController = new ScrollController();

2.在初始化中监听滚动

  @override
  void initState() {
    super.initState();
    


    _scrollController.addListener(() {
      print(_scrollController.offset); //打印滚动位置
      print("打印滚动位置"); //打印滚动位置
      if (_scrollController.offset < 100 && showToTopBtn) {
        setState(() {
          showToTopBtn = false;
        });
      } else if (_scrollController.offset >= 100 && showToTopBtn == false) {
        setState(() {
          showToTopBtn = true;
        });
      }
    });
    
  }

3.注销/卸载滚动

  @override
  dispose(){
    super.dispose();
    _scrollController.dispose(); // 卸载
   
  }

4.在 ListView里面带上controller

child: ListView(
        controller: _scrollController,

5.定义

bool showToTopBtn = false; //是否显示“返回到顶部”按钮

6.置顶的按钮

   floatingActionButton: !showToTopBtn
            ? null
            : FloatingActionButton(
            child: Icon(Icons.arrow_upward),
            onPressed: () {
              //返回到顶部时执行动画
              _scrollController.animateTo(.0, duration: Duration(milliseconds: 200), curve: Curves.ease);
            }),
原文地址:https://www.cnblogs.com/lude1994/p/14134689.html