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