【发布时间】:2020-04-21 09:11:22
【问题描述】:
在 Flutter 中,我有一个底部导航栏,其中有 4 个不同的底部导航栏项目。在第 4 个菜单项中,我有一个复选框小部件。在导航栏中浏览项目时,我希望选中或未选中项目的情况仍然存在。例如,如果我取消选中此小部件,我希望它在浏览其他导航栏项目时保持“未选中”状态。我怎样才能做到这一点?我尝试使用复选框的关键参数,但失败了。
【问题讨论】:
在 Flutter 中,我有一个底部导航栏,其中有 4 个不同的底部导航栏项目。在第 4 个菜单项中,我有一个复选框小部件。在导航栏中浏览项目时,我希望选中或未选中项目的情况仍然存在。例如,如果我取消选中此小部件,我希望它在浏览其他导航栏项目时保持“未选中”状态。我怎样才能做到这一点?我尝试使用复选框的关键参数,但失败了。
【问题讨论】:
你应该使用AutomaticKeepAliveClientMixin 在您浏览项目时保持状态。用它扩展您的状态类并创建一个覆盖方法wannaKeepAlive并将其设置为true。这是一个使用AutomaticKeepAliveClientMixin的小部件示例。
class Example extends StatefulWidget {
@override
_ExampleState createState() => _ExampleState();
}
class _ExampleState extends State<Example> with AutomaticKeepAliveClientMixin {
@override
Widget build(BuildContext context) {
return Container(
);
}
@override
// TODO: implement wantKeepAlive
bool get wantKeepAlive => true;
}
【讨论】:
欢迎来到状态管理! Official guideline for state management from Flutter team.
我建议阅读从introduction to state management 开始的所有内容。
【讨论】: