片段处理屏幕方向与操作栏中的选项卡

时间:2012-03-22 09:24:31

标签: android tabs fragment android-actionbar screen-orientation

有人可以向我解释或者可能会指出一个链接或一个例子,说明在片段方面应该如何处理屏幕方向。我现在遇到的问题是我有一个带有三个标签的操作栏的应用程序。每个选项卡包含一个片段。因此,当我翻转设备时,只使用

选择的一个片段
actionbar.setSelectedNavigationItem(1) 
显示

(没有混淆,其他选项卡是可见的,但是当我点击它们时没有任何反应,它们无法被选中和显示。它们的内容从未显示过)。在这些情况下是否有某些事情要做?有人可以给我一个建议,我会很感激。谢谢你。

1 个答案:

答案 0 :(得分:13)

我遇到了同样的问题并在此处找到了解决方案: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/FragmentTabs.html

问题是以前保存的状态中的选项卡已经存在碎片。你必须停用它们。

以下是TabListener构造函数的代码片段:

public TabListener(Activity activity, String tag, Class<T> clz, Bundle args) {
        mActivity = activity;
        mTag = tag;
        mClass = clz;
        mArgs = args;

        // Check to see if we already have a fragment for this tab, probably
        // from a previously saved state.  If so, deactivate it, because our
        // initial state is that a tab isn't shown.
        mFragment = mActivity.getFragmentManager().findFragmentByTag(mTag);
        if (mFragment != null && !mFragment.isDetached()) {
            FragmentTransaction ft = mActivity.getFragmentManager().beginTransaction();
            ft.detach(mFragment);
            ft.commit();
        }
    }

希望我能帮助你。