我的问题是,每次我使用导航栏更改页面时都会调用 itemBuilder,更糟糕的是,即使我向下和向上滚动,项目也会重建,这很糟糕,因为我使用的是在线图像。
有谁知道我怎样才能防止这种情况发生?
我有一个使用底部导航的主页小部件
child: Scaffold(
bottomNavigationBar: bottomNavigationBar,
key: scaffoldKey,
backgroundColor: Colors.transparent,
appBar: appBar,
body: AnimatedContainer(
decoration: gradientList[_selectedIndex],
duration: Duration(milliseconds: interpolationTime),
child: Center(
child: PageView(
onPageChanged: (int) {
setState(() {
_selectedIndex = int;
});
},
controller: _pageController,
children: _widgetsBottomNav)),
)),
);
我的 _widgetsBottomNav 对象是在初始化时创建的小部件列表
@override
void initState() {
_pageController = PageController();
_widgetsBottomNav = <Widget>[
getLikesPage(),
getFollowsPage(),
];
super.initState();
}
这是我的 getLikesPage() 函数:
FutureBuilder<bool> getLikesPage() {
return FutureBuilder(
future: dbService.hasLikeData,
builder: (context, AsyncSnapshot snapshot) {
return Container(
child: SmartRefresher(
enablePullDown: true,
controller: _refreshLikesController,
onRefresh: _onLikesRefresh,
onLoading: _onLikesLoading,
child: CustomScrollView(
slivers: [
SliverAnimatedList(
key: _likeListKey,
initialItemCount: dbService.likesData.length,
itemBuilder: _likeBuilder),
],
)));}
}
```