【发布时间】:2012-04-24 21:18:37
【问题描述】:
我正在尝试掌握所有新的 ActionBar 和 Fragments API。 我有一个主要活动,我希望它管理两个不同的选项卡。 我使用 ActionBarSherlock 是为了支持比 ICS 更旧的版本。
每个选项卡都包含自己的Fragment(每个选项卡都是SherlockListFragment 的子类)
我得到它的工作基本上很好,但我有一个问题,我确信这是愚蠢的,但我还无法弄清楚:
在第一次显示每个 Fragment 时,一切正常,列表已填充,ActionBar 中的 MenuItems 也是如此。
但您第二次看到选项卡时(在切换和切换回之后),列表都不会被填充,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);
}
}
}
而 onTabUneselect 我正在分离片段:
@Override
public void onTabUnselected(Tab tab, FragmentTransaction transaction) {
SherlockListFragment toDetach = // Find the right fragment
if (toDetach != null) {
transaction.detach(toDetach);
}
}
我在 onResume 中填充列表和 ActionBar 菜单:
@Override
public void onResume() {
super.onResume();
setHasOptionsMenu(true);
fillRemindersList();
}
我也在 onStart 和 onCreateView 中尝试过,但没有帮助...
那么我在这里错过了什么? 如果我的代码中还有其他我不知道的问题,请告知。
谢谢!
编辑:
我刚刚确认onResume 在我切换标签后不会被调用,这绝对是错误的,因为我正在分离并重新连接它们......
我是否以错误的方式切换标签?
【问题讨论】:
标签: java android android-fragments actionbarsherlock android-actionbar