flutter - 有没有办法保留子有状态小部件的状态?
问题描述
嗨,伙计们,我对这件事有点陌生,但是请问有什么办法可以保留有状态小部件的状态,而不是每次调用时都重新构建小部件
--假设我有一个 PageView 作为我的主页,它的孩子都是有状态的小部件......在页面滑动时,我希望它在列表中构建孩子一次,而不是在每次页面更改时重新构建
--这是我的代码,
!!!
return PageView(
onPageChanged: (cardIndex) {},
scrollDirection: Axis.horizontal,
children: <Widget>[
ChatPage(),
UploadPage(),
NotifyPage(),
Settings()
]
);
...谢谢
解决方案
您可以使用AutomaticKeepAliveClientMixin
在 State 类中调用的 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 中实现 Persistent Tab bar 的文章https://medium.com/@diegoveloper/flutter-persistent-tab-bars-a26220d322bc
推荐阅读
- java - 我如何能够显示数字出现的次数
- r - 如何为 R 中的摘要保持一些变量静态
- node.js - npm 错误!尝试获取时响应超时
- python - “tensorflow.python.framework.ops.EagerTensor”对象没有属性“_in_graph_mode”
- python - 即使没有结果,如何计算特定值?
- c# - Razor - 在 ASP.Net Core MVC 中将模型对象转换为 json 对象
- r - 为什么在我的 ggplot2 直方图上调整 y 轴
- angular - 点击时ngclass改变颜色
- java - java regex 函数中的问题。它没有验证。帮我
- java - 如何修复 Java 错误:myClass 不是抽象的并且不会覆盖抽象方法?