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);
            }),

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM