Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振如何检测页面视图OnTappup_Flutter_Flutter Layout - Fatal编程技术网

Flutter 颤振如何检测页面视图OnTappup

Flutter 颤振如何检测页面视图OnTappup,flutter,flutter-layout,Flutter,Flutter Layout,我用PageView在垂直方向上写了一个列表。现在,当我向上或向下滑动列表时(我的手指没有离开屏幕),将执行onPageChanged。是否有办法检测onPageChanged方法仅在手指离开屏幕时执行。部分代码如下: 大小盒子( 宽度:200, 身高:200, 子:页面视图( 控制器:页面控制器, 滚动方向:轴垂直, onPageChanged:(索引){ 设置状态(){ pageIndex=索引; }); }, 子项:_buildCardList()), ) 如下图所示: Sized

我用PageView在垂直方向上写了一个列表。现在,当我向上或向下滑动列表时(我的手指没有离开屏幕),将执行onPageChanged。是否有办法检测onPageChanged方法仅在手指离开屏幕时执行。部分代码如下:


大小盒子(
宽度:200,
身高:200,
子:页面视图(
控制器:页面控制器,
滚动方向:轴垂直,
onPageChanged:(索引){
设置状态(){
pageIndex=索引;
});
},
子项:_buildCardList()),
)
如下图所示:

  SizedBox(
            width: 100,
            height: 100,
            child: NotificationListener<ScrollNotification>(
              onNotification: (notification)
              {
                if(notification is ScrollEndNotification)
                  {

                    var pageIndex = pageController.page;
                  }

              },
              child: PageView(
                  controller: pageController,
                  scrollDirection: Axis.vertical,
                  onPageChanged: (index) {
                  },
                  children: _buildCardList()),
            ),
          )

你可以这样做

   int currentPage;
    .
    .
    .
    onPageChanged(int page){
      if(currentPage != page){
        setState((){
          currentPage = page;
        });
      }
    }

使用通知侦听器包装页面视图,如下所示:

  SizedBox(
            width: 100,
            height: 100,
            child: NotificationListener<ScrollNotification>(
              onNotification: (notification)
              {
                if(notification is ScrollEndNotification)
                  {

                    var pageIndex = pageController.page;
                  }

              },
              child: PageView(
                  controller: pageController,
                  scrollDirection: Axis.vertical,
                  onPageChanged: (index) {
                  },
                  children: _buildCardList()),
            ),
          )
SizedBox(
宽度:100,
身高:100,
孩子:NotificationListener(
通知:(通知)
{
如果(通知为ScrollEndNotification)
{
var pageIndex=pageController.page;
}
},
子:页面视图(
控制器:页面控制器,
滚动方向:轴垂直,
onPageChanged:(索引){
},
子项:_buildCardList()),
),
)