我有一个标签式应用程序,比如2个标签。它最初是使用ActivityGroup开发的。但是,在意识到ActivityGroup中不支持多窗格之后,我决定使用片段。在讨论问题之前,让我向您简要介绍一下该应用程序。
所以,就像我之前说的那样是一个标签式应用程序
TabA---> Activity1---> Activity2---> Activity3
TabB---> Activity4---> Activity5----> Activity6
这是我以旧的基于活动组的应用程序的工作模式。
现在有了片段,这将变成类似下面的内容
FragmentActivity---> TabAFragment---> FragmentA1---> FragmentA2
|
---> TabBFragment---> FragmentB1---> FragmentB2
每个片段在初始加载时连接到服务器以获取数据。
在事务中,我每次添加时都会替换片段。
FragmentTransaction ft = manager.beginTransaction();
ft.replace(R.id.realtabcontent, fragment);
ft.commit();
观察到的内容
这两个标签片段只有一个活动(FragmentActivity-创建标签)。我为所有标签共享此活动。例如,我在tabB中加载fragmentB1-膨胀视图,从服务器获取数据并在ListView中显示。然后我切换到其他tabA并加载fragmentA1。到现在为止还挺好。现在,如果我回到tabB,我想看到之前加载的listView。会发生什么,它从一个方块开始。
这是我对碎片的第一手经验。我做了一些研究;但它并没有真正帮助修复我的。
如何保留已加载的视图?
有什么想法吗?
答案 0 :(得分:0)
嗨,我对所有碎片也很新。但是,我正在做类似的事情,发现我需要将当前片段添加到后端堆栈中。
ft.addToBackStack (null);
此行将在您的comit之前,因此您的代码将变为:
FragmentTransaction ft = manager.beginTransaction();
ft.replace(R.id.realtabcontent, fragment);
ft.addToBackStack (null);
ft.commit();
希望这有一些用处。