关于 PageView 每次点击tab都会重新渲染页面的问题
来源:15-5 Flutter Plugin开发指南-Android端实现-1【打通Flutter与Android的任通二脉】
JakePrim
2019-04-16
// PageView(
// controller: _controller,
// children: <Widget>[
// //page的页面
// HomePage(),
// SearchPage(
// hideLeft: true,
// ),
// TravelPage(),
// MinePage(),
// ],
// onPageChanged: (int index) {
// //滑动page的监听
// setState(() {
// //改变tab状态
// _controllerIndex = index;
// });
// },
// ),
我改成了 ,如下代码 就可以解决了,但是滑动就没了
body: IndexedStack(
children: <Widget>[
//page的页面
HomePage(),
SearchPage(hideLeft: true,),
TravelPage(),
MinePage(),
],
index: _controllerIndex,
),
写回答
1回答
-
可以让不想重新渲染的页面实现AutomaticKeepAliveClientMixin:
class _TravelTabPageState extends State<TravelTabPage> with AutomaticKeepAliveClientMixin { ... @override bool get wantKeepAlive => true; }
具体可参考第13章的实现:
https://git.imooc.com/coding-321/flutter_trip/src/master/lib/pages/travel_tab_page.dart#L34
012019-04-17
相似问题