本文有参考,链接找不到了
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); }),