Fragment分离然后重新附加后,片段onResume不会被调用

Avi*_*ron 5 java android android-fragments actionbarsherlock android-actionbar

我正在尝试获取所有新ActionBar和Fragments API的句柄.我有一个主要活动,我希望它管理两个不同的选项卡.我正在使用ActionBarSherlock以支持比ICS更旧的版本.

每个选项卡都包含它自己Fragment(每个都是它的子类SherlockListFragment)我让它工作基本上很好,但我有一个问题,我确定这是愚蠢的,但我还是无法解决它:

在第一次显示每个片段时,一切正常,列表已填充,因此ActionBtem位于ActionBar中.

但是第二次看到一个标签(在swicth和switch-back之后),列表都没有填充,也没有ActionBar MenuItems.

这是我切换标签的方式:

@Override
public void onTabSelected(Tab tab, FragmentTransaction transaction) {
    SherlockListFragment toAttach = // Find the right fragment here...

    if (toAttach != null) {
        if (toAttach.isAdded() == false) {
            transaction.add(R.id.tab_placeholder, toAttach,
                    REMINDER_FRAGMENT_TAG);
        } else {
            transaction.attach(toAttach);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并且onTabUneselect我正在分离碎片:

@Override
public void onTabUnselected(Tab tab, FragmentTransaction transaction) {
    SherlockListFragment toDetach = // Find the right fragment
    if (toDetach != null) {
        transaction.detach(toDetach);
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在onResume中填充列表和ActionBar菜单:

@Override
public void onResume() {
    super.onResume();
    setHasOptionsMenu(true);
    fillRemindersList();
}
Run Code Online (Sandbox Code Playgroud)

我也在onStart和onCreateView上尝试了它,但它没有帮助...

那我在这里错过了什么?如果我的代码中还有其他问题我不知道,请告诉我.

谢谢!

编辑:

我刚刚确认onResume在切换标签后没有被调用,因为我正在分离并重新连接它们,这是完全错误的...我是否错误地切换标签?

Sid*_*tel 2

尝试在 onTabUnselected 中使用 transaction.remove(fragment) 并在 onTabSelected 中使用 transaction.replace 。