Flutter
切換tabar
后不會(huì)保留tabbar
狀態(tài) 殉摔,Flutte
r中為了節(jié)約內(nèi)存不會(huì)保存widget
的狀態(tài),widget
都是臨時(shí)變量逸月。當(dāng)我們使用TabBar
,TabBarView
是我們就會(huì)發(fā)現(xiàn),切換tabar
,initState
又會(huì)被調(diào)用一次碗硬。
怎么為了讓tabar
一直保存在內(nèi)存中瓤湘,不被銷毀恩尾?
添加AutomaticKeepAliveClientMixin
,并設(shè)置為bool get wantKeepAlive => true;
,這樣就能一直保持當(dāng)前不被initState
了木人。
class TestListView extends StatefulWidget {
@override
_ChatPageState createState() => _ChatPageState();
}
//1.添加with AutomaticKeepAliveClientMixin
class _TestListViewState extends State<TestListView>
with AutomaticKeepAliveClientMixin {
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
//3.添加 super.build(context) 必須添加
super.build(context);
return Container();
}
//2.添加 bool get wantKeepAlive => true
//不會(huì)被銷毀,占內(nèi)存中
@override
bool get wantKeepAlive => true;
}
1.添加with AutomaticKeepAliveClientMixin
class _TestListViewState extends State<TestListView>
with AutomaticKeepAliveClientMixin{}
2.添加 bool get wantKeepAlive => true
,是否保保持頁面不變
@override
bool get wantKeepAlive => true;
3.添加 super.build(context)
必須添加
@override
Widget build(BuildContext context) {
//3.添加 super.build(context) 必須添加
super.build(context);
return Container();
}