伙计们,我对这件事有点陌生,但是请问有什么方法可以保留有状态的小部件的状态,而不必每次调用小部件时都重新构建
-假设我有一个PageView作为我的主页,它的子级都是有状态的小部件... 然后在页面上滑动,我希望它一次在列表中建立孩子 而不是在每次页面更改时都重新构建
-这是我的代码,
!!!
return PageView(
onPageChanged: (cardIndex) {},
scrollDirection: Axis.horizontal,
children: <Widget>[
ChatPage(),
UploadPage(),
NotifyPage(),
Settings()
]
);
...谢谢
答案 0 :(得分:0)
您可以在State类中使用名为AutomaticKeepAliveClientMixin
的mixin类,并覆盖wantKeepAlive
方法并返回true
。
示例:
class ChatPage extends StatefulWidget{
@override
_ChatPageState createState() => _ChatPageState();
}
class _ChatPageState extends State<ChatPage> with
AutomaticKeepAliveClientMixin<ChatPage> {
@override
bool get wantKeepAlive => true; // <- override this method
@override
Widget build(BuildContext context) {
return ....
}
}
有关更多信息,您可以参考这篇在Flutter https://medium.com/@diegoveloper/flutter-persistent-tab-bars-a26220d322bc中实现Persistent Tab栏的文章