ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Flutter StaggeredGridView 사용시 scroll position 문제
    개발/Flutter 2019. 7. 18. 21:23

    Symptom : scroll position not match with before navigated.

     

    Cause I guess : When lazy load items and use heavy loading widget(like NetworkImage widget) with StaggeredGridView, scroll position saved wrong position.

     

    You can see scroll position not moved after navigator.push.

    But using NetworkImage widget in StaggeredGridView, after navigator.push and pop, The scroll position is moved wrong position.

     

    Solution : After navigator.pop call forced move position.

    class DoubleHolder {
        double value = 0.0;
    }

    Declare class outside statefulwidget class. Make geter and seter inside statefulwidget.

     

    class MyHomePage extends StatefulWidget {
    ...
      double getOffsetMethod() {
        return offset.value;
      }
      void setOffsetMethod(double val) {
        offset.value = val;
      }
    ...
    }

     

    Define controller and resister listener. And resister controller to StaggeredGridView.

    When you Navigator.pop, forced move controller using callback.

     

    When you Navigator.pop, forced move controller using callback.

     

    You can see scroll position not moved.

    Source here.

     

    https://gist.github.com/PlatiB/41ea61709d4fee32e1fe7f0d233bcf9e

     

    댓글

Designed by Tistory.