gpt4 book ai didi

flutter - 如何在方向更改时保留 Flutter 中的选定选项卡?

转载 作者:IT王子 更新时间:2023-10-29 07:13:07 26 4
gpt4 key购买 nike

我在 Flutter 中有一个带有选项卡的应用程序,当我通过将设备从纵向旋转到横向来更改方向时,将重建小部件树并重置小部件的状态。效果是所选选项卡重置回第一个选项卡。我想防止在方向更改期间重置状态,以便所选选项卡也不会更改。

在我的 State 类中,我使用 AutomaticKeepAliveClientMixin 并设置了:

@override
bool get wantKeepAlive => true;

但这似乎没有任何效果。

有没有办法确保在旋转设备时保留我的所有应用程序和小部件状态?

如果有帮助,我可以发布代码,尽管我希望这是一个相当普遍的问题,但我还没有想到一个简单的答案。

谢谢!

最佳答案

事实证明,在一路追溯我的 Widget 树之后,我发现我最顶层的 widget 被声明为 Stateless 并且我在 .build 方法中放置了一行代码导致整个状态每次重建小部件时应用程序都会重置 - 特别是在方向更改时。

为了解决这个问题,我将小部件更改为有状态并将此代码移到状态类中的 initState 方法中。一旦我这样做了,我的问题就解决了,因为这个类的状态不受方向变化的影响。

Remi 的评论是正确的。

一整天的编码丢失了,但学到了很多东西。 :-)

对于可能遇到类似问题的任何人,请仔细查看您放入 .build 方法中的任何代码,并意识到它会在任何时候重新构建小部件时被调用。

仍在学习 Flutter,但总体印象深刻。

关于flutter - 如何在方向更改时保留 Flutter 中的选定选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53371514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com