我想在每次页面向前/向后更改时应用NeversCrollablesCrollPhysics(),然后在3秒后返回AlwaysCrollableScrollPhysics()。
我该如何实现这种行为?
我尝试在OnPageChanged侦听器中设置状态,但它会破坏页面视图。

class _HomePageState extends State<HomePage> {
  ScrollPhysics myScrollPhysics = AlwaysScrollableScrollPhysics();

   @override
   Widget build(BuildContext context) {
     return PageView(
       scrollDirection: Axis.vertical,
       controller: myPageController,
       physics: myScrollPhysics,
       onPageChanged: (index){
         setState((){
           myScrollPhysics = NeverScrollableScrollPhysics();
         })
       },
       children: [...]
     )
   }

最佳答案

这本书的作用是:
在这个函数中,您需要等待3秒钟才能更改状态和物理。

void _scrollOn() async {
   myScrollPhysics = NeverScrollableScrollPhysics();
   await Future.delayed(const Duration(seconds: 3));
   setState((){
      myScrollPhysics = AlwaysScrollableScrollPhysics();
   })
}

onPageChanged: (index){
   setState((){
      _scrollOn();
   })
},

10-08 15:08