片段:查看状态还原

时间:2019-09-20 11:54:02

标签: android android-fragments

我熟悉Activity的View状态恢复,并且按承诺做得很好,但是我遇到了这样的情况:即使TextView之类的小部件也无法恢复最后设置的视图状态。< / p>

场景很简单:

假设我有2个片段-活动A的F1和F2。每个片段都有一堆标准小部件-TextViewEditTextImageview等。执行事务以将片段F1替换为F2并更改某些TextView的文本状态:

getSupportFragmentManager().beginTransaction()
                .addToBackStack(null)
                .replace(R.id.fragment_container, f2Fragment)
                .commit();

// In the containing Activity(this is done before replacing f1 with f2):
getSupportFragmentManager().beginTransaction()
                .addToBackStack(null)
                .add(R.id.fragment_container, f1Fragment)
                .commit();

接下来,我在Fragment F2上,我决定按后退按钮。现在回到F1了,这就是问题-所有更改了文本的TextView都恢复了原始的起始文本。可见性已至少更改为INVISIBLE一次,然后又更改回VISIBLE的窗口小部件不再可见。同样,翻转按钮的启用状态似乎也会重置。

我记得阅读过文档,并且我认为View状态恢复是承诺的合同的一部分。我所面对的情况已经使使用Fragment的魅力消失了。

我在做什么错了?

PS :我曾尝试为片段标签名称提供一个“字符串”以及addToBackStack()中的一个字符串,但这没有帮助

0 个答案:

没有答案