在 null 上调用了方法 'animateToPage'
The method 'animateToPage' was called on null
我正在尝试克隆 Instagram,但导航栏无法导航,但它通过我显示了一个错误方法 'animateToPage' 在 null 上被调用。
这是它的代码
Scaffold buildHomeScreen(){
return Scaffold(
body: PageView(
children: <Widget>[
TimeLinePage(),
SearchPage(),
UploadPage(),
NotificationsPage(),
ProfilePage(),
],
controller: pageController,
onPageChanged: whenPageChanges,
physics: NeverScrollableScrollPhysics(),
),
bottomNavigationBar: CupertinoTabBar(
currentIndex: getPageIndex,
onTap: onTapChangePage,
backgroundColor: Theme.of(context).accentColor,
activeColor: Colors.white,
inactiveColor: Colors.blueGrey,
items: [
BottomNavigationBarItem(icon: Icon(Icons.home)),
BottomNavigationBarItem(icon: Icon(Icons.search)),
BottomNavigationBarItem(icon: Icon(Icons.photo_camera, size: 37.0,)),
BottomNavigationBarItem(icon: Icon(Icons.favorite)),
BottomNavigationBarItem(icon: Icon(Icons.person)),
],
),
);
这些是我使用的方法
whenPageChanges(int pageIndex){
setState(() {
this.getPageIndex = pageIndex;
});
}
onTapChangePage(int pageIndex){
pageController.animateToPage(pageIndex, duration:Duration(milliseconds: 300), curve: Curves.bounceInOut);
}
您确定 pageController
在正确的位置初始化了吗?您还需要记住在 dispose 中取消它。
显示您创建控制器的代码部分。
我正在尝试克隆 Instagram,但导航栏无法导航,但它通过我显示了一个错误方法 'animateToPage' 在 null 上被调用。
这是它的代码
Scaffold buildHomeScreen(){
return Scaffold(
body: PageView(
children: <Widget>[
TimeLinePage(),
SearchPage(),
UploadPage(),
NotificationsPage(),
ProfilePage(),
],
controller: pageController,
onPageChanged: whenPageChanges,
physics: NeverScrollableScrollPhysics(),
),
bottomNavigationBar: CupertinoTabBar(
currentIndex: getPageIndex,
onTap: onTapChangePage,
backgroundColor: Theme.of(context).accentColor,
activeColor: Colors.white,
inactiveColor: Colors.blueGrey,
items: [
BottomNavigationBarItem(icon: Icon(Icons.home)),
BottomNavigationBarItem(icon: Icon(Icons.search)),
BottomNavigationBarItem(icon: Icon(Icons.photo_camera, size: 37.0,)),
BottomNavigationBarItem(icon: Icon(Icons.favorite)),
BottomNavigationBarItem(icon: Icon(Icons.person)),
],
),
);
这些是我使用的方法
whenPageChanges(int pageIndex){
setState(() {
this.getPageIndex = pageIndex;
});
}
onTapChangePage(int pageIndex){
pageController.animateToPage(pageIndex, duration:Duration(milliseconds: 300), curve: Curves.bounceInOut);
}
您确定 pageController
在正确的位置初始化了吗?您还需要记住在 dispose 中取消它。
显示您创建控制器的代码部分。