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