Android导航组件在Activity旋转时保留当前Fragment
创始人
2024-10-07 02:00:30
0

要在Activity旋转时保留当前Fragment,可以使用ViewModel来保存Fragment的状态。ViewModel在Activity重新创建时会被保留,因此可以通过ViewModel来保存当前Fragment的信息。

以下是一个示例的解决方法:

  1. 创建一个继承自ViewModel的类,用于保存当前Fragment的信息。
public class MyViewModel extends ViewModel {
    private Fragment currentFragment;

    public Fragment getCurrentFragment() {
        return currentFragment;
    }

    public void setCurrentFragment(Fragment currentFragment) {
        this.currentFragment = currentFragment;
    }
}
  1. 在Activity中使用ViewModel来保存和恢复Fragment的状态。
public class MainActivity extends AppCompatActivity {
    private MyViewModel viewModel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        viewModel = ViewModelProviders.of(this).get(MyViewModel.class);

        if (savedInstanceState == null) {
            // 创建并显示默认的Fragment
            Fragment fragment = new MyFragment();
            viewModel.setCurrentFragment(fragment);
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.fragment_container, fragment)
                    .commit();
        } else {
            // 恢复之前保存的Fragment
            Fragment fragment = viewModel.getCurrentFragment();
            getSupportFragmentManager().beginTransaction()
                    .replace(R.id.fragment_container, fragment)
                    .commit();
        }
    }
}

这样,在Activity重新创建时,会检查是否有保存的Fragment信息,如果有,则恢复之前的Fragment,否则创建并显示默认的Fragment。

请注意,以上示例代码仅演示了如何使用ViewModel来保存和恢复Fragment的信息。实际应用中,您可能需要根据您的具体需求进行修改。

相关内容

热门资讯

透视私人局"hhpo... 透视私人局"hhpoker万能辅助器"详细辅助微扑克教程(从前是真的有挂);1.hhpoker万能辅...
透视科技"hhpok... 透视科技"hhpoker是真的吗"详细辅助2025新版教程(本然是真的有挂);《WPK辅助透视》‌:...
透视规律"poker... 您好,pokermaster破解版这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302...
透视玄学"wepok... 透视玄学"wepoker辅助工具"详细辅助揭秘教程(一贯真的是有挂)是一款可以让一直输的玩家,快速成...
透视透视"约局吧德州... 透视透视"约局吧德州透视"详细辅助大神讲解(一贯真的有挂)是一款可以让一直输的玩家,快速成为一个“必...
透视黑科技"德普之星... 您好,德普之星怎么设置埋牌这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
透视系统"红龙pok... 透视系统"红龙poker辅助工具"详细辅助靠谱教程(从前真的是有挂);玩家必备必赢加哟《136704...
透视好友房"we-p... 透视好友房"we-poker有人玩吗"详细辅助曝光教程(真是存在有挂);支持多人共享记分板与复盘,通...
透视科技"hhpok... 透视科技"hhpoker软件靠谱吗"详细辅助攻略教程(确实真的是有挂)准备好在hhpoker软件靠谱...
透视挂"hhpoke... 1、透视挂"hhpoker德州机器人"详细辅助AA德州教程(总是真的有挂)2、进入游戏-大厅左侧-新...