Jam*_*ite 0 state orientation flutter
我有一个带有 Flutter 标签的应用程序,当我通过将设备从纵向旋转到横向来改变方向时,小部件树被重建,小部件的状态被重置。效果是所选选项卡被重置回第一个选项卡。我想防止在方向更改期间重置状态,以便所选选项卡也不会更改。
在我的 State 类中,我使用了 AutomaticKeepAliveClientMixin 并设置了:
@override
bool get wantKeepAlive => true;
Run Code Online (Sandbox Code Playgroud)
但这似乎没有任何效果。
有没有办法确保在旋转设备时保留我的所有应用程序和小部件状态?
如果有帮助,我可以发布代码,尽管我希望这是一个相当通用的问题,但我还没有想到一个简单的答案。
谢谢!
事实证明,在一直追溯我的 Widget 树之后,我发现我最顶层的小部件被声明为无状态,并且我在 .build 方法中放置了一行代码,导致整个应用程序的状态被重置每次重新构建小部件时 - 特别是在方向更改时。
为了修复,我将小部件更改为 Stateful 并将此代码移动到状态类中的 initState 方法中。一旦我这样做了,我的问题就解决了,因为这个类的状态不会受到方向改变的影响。
雷米的评论是正确的。
一整天的编码丢失了,但学到了很多。:-)
对于可能遇到类似问题的任何人,请仔细查看您放入 .build 方法中的任何代码,并意识到它会在小部件重建时被调用。
仍在学习 Flutter,但总体印象深刻。
| 归档时间: |
|
| 查看次数: |
851 次 |
| 最近记录: |