Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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 定时。周期性的颤振,_Flutter_Dart - Fatal编程技术网

Flutter 定时。周期性的颤振,

Flutter 定时。周期性的颤振,,flutter,dart,Flutter,Dart,我试图建立一个周期性的计时器,它在pageview中滚动页面,每5秒钟就会抖动一次,但是即使在最后一页之后它也会继续滚动。我试图实现上面的方法if(isLastPage){timer.cancel();},但它不起作用。您必须在每次计时器计时时计算该表达式。另外,将isLastPage检查置于hasClients检查之前 Timer.periodic(持续时间:5秒),(计时器){ final isLastPage=\u currentPage.round()==sliderArrayList.

我试图建立一个周期性的计时器,它在pageview中滚动页面,每5秒钟就会抖动一次,但是即使在最后一页之后它也会继续滚动。我试图实现上面的方法
if(isLastPage){timer.cancel();}
,但它不起作用。

您必须在每次计时器计时时计算该表达式。另外,将
isLastPage
检查置于
hasClients
检查之前

Timer.periodic(持续时间:5秒),(计时器){
final isLastPage=\u currentPage.round()==sliderArrayList.length-1;
如果(isLastPage){
timer.cancel();
返回;
}
if(_pageController.hasClients){
_pageController.nextPage(
持续时间:持续时间(毫秒:200),
曲线:Curves.easeIn);
}
});

if(isLastPage)
替换为
if(\u currentPage.round()==sliderArrayList.length-1)
它可以工作是,但仍会在最后一页后滚动一个添加页
@override
void initState() {
 super.initState();

 bool isLastPage = (_currentPage.round() == sliderArrayList.length - 1 );

 //Trying to build automatic scrollable
 Timer.periodic(Duration(seconds: 5), (Timer timer) {
  if (_pageController.hasClients && !isLastPage) {
    _pageController.nextPage(
      duration: Duration(milliseconds: 200),
      curve: Curves.easeIn);}
  if(isLastPage){
    timer.cancel();
  }
 });
}