我有一个带有导航抽屉、一个活动和许多片段的应用程序。当我更改设备方向时,我的主要活动是重新创建,并且出现的是我的主要片段,而不是当前片段。就像我启动应用程序时一样。
如何恢复当前片段以及与所选片段关联的数据?
我看过这篇文章,但它不起作用:使用导航抽屉保存片段状态
提前感谢那些可以帮助我的人。
我有一个带有导航抽屉、一个活动和许多片段的应用程序。当我更改设备方向时,我的主要活动是重新创建,并且出现的是我的主要片段,而不是当前片段。就像我启动应用程序时一样。
如何恢复当前片段以及与所选片段关联的数据?
我看过这篇文章,但它不起作用:使用导航抽屉保存片段状态
提前感谢那些可以帮助我的人。
我发现片段状态已经为您保留了。
这就是我所做的:我检查是否savedInstanceState
为空。如果是,我执行FragmentManager
事务以显示主要片段。如果不为null,则表示片段状态是持久化的。我不进行任何类型的事务,并且从持久状态为我重新创建了片段。
if (savedInstanceState == null){
//Launch HomeFragment onStart...
Fragment fragment = new HomeFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.frame, fragment).commit();
}
onCreate
我在我的主要活动中添加了这个