如何使用导航抽屉和片段保存状态

How to save state with navigation drawer and fragments

我有一个带有导航抽屉的应用程序,一个 activity 和许多片段。当我更改设备方向时,我的主要 activity 被重新创建,出现的是我的主要片段,而不是当前片段。就像我启动应用程序时一样。

如何恢复当前片段以及与所选片段关联的数据?

我看过这个 post 但它不起作用:Save fragment state with navigation drawer

在此先感谢那些可以帮助我的人。

我发现片段状态已经为您保留。

这就是我所做的:我检查 savedInstanceState 是否为空。如果是,我执行 FragmentManager 事务来显示主要片段。如果不为空,则表示片段状态被持久化。我没有进行任何类型的交易,片段是从持久化状态为我重新创建的。

if (savedInstanceState == null){
    //Launch HomeFragment onStart...
    Fragment fragment = new HomeFragment();
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.frame, fragment).commit();
}

我在主 Activity

中将此添加到 onCreate