我使用PageView在垂直方向上写了一个列表。现在,当我上下滑动列表(我的手指没有离开屏幕)时,将执行onPageChanged。有没有一种方法可以检测到onPageChanged方法仅在手指离开屏幕时才会执行。部分代码如下:
SizedBox(
width: 200,
height: 200,
child: PageView(
controller: pageController,
scrollDirection: Axis.vertical,
onPageChanged: (index) {
setState(() {
pageIndex = index;
});
},
children: _buildCardList()),
)
如下所示:
答案 0 :(得分:1)
使用如下所示的通知侦听器包装页面视图:
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()),
),
)
答案 1 :(得分:0)
您可以那样做;
int currentPage;
.
.
.
onPageChanged(int page){
if(currentPage != page){
setState((){
currentPage = page;
});
}
}