【问题标题】:how to preserve fragments recreation如何保存碎片娱乐
【发布时间】:2012-06-16 01:05:50
【问题描述】:

我正在尝试使用片段和 RadioGroup 实现标签栏

我像这样在选中的无线电组更改中切换片段(在 sdk 示例中看到类似的内容)

公开

 void onCheckedChanged(RadioGroup radioGroup, int id) {
        TabInfo newTab = mContent.get(id);

        if (newTab != lastTab) {
            FragmentTransaction transaction = mActivity.getSupportFragmentManager().beginTransaction();
            if (lastTab != null && lastTab.fragment != null) {
                transaction.detach(lastTab.fragment);
            }
            if (newTab.fragment == null) {
                newTab.fragment = Fragment.instantiate(mActivity, newTab.getTag());
                transaction.add(mContainerId, newTab.fragment);
            } else {
                transaction.attach(newTab.fragment);
            }
            lastTab = newTab;
            transaction.setCustomAnimations(R.anim.tab_transaction, R.anim.tab_transaction);
            transaction.commit();
        }
    }

但每次发生这种情况时,附加片段都是从头开始创建的,即调用 onCreate 等等..

有什么方法可以防止片段在活动中一遍又一遍地创建? 我也不希望后退按钮可以将片段切换回来;

【问题讨论】:

    标签: java android android-fragments


    【解决方案1】:

    您可以使用FragmentTransaction.show()FragmentTransaction.hide(),而不是使用FragmentTransaction.attach()FragmentTransaction.detach() 方法。您还需要更改您在上面示例中提供的一些周围代码,但我会将其留作您的好自己的练习。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-12
      • 1970-01-01
      • 2010-12-16
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 2023-03-09
      相关资源
      最近更新 更多