【发布时间】:2014-04-28 17:08:32
【问题描述】:
我为我的问题寻找解决方案,但没有找到我想要的。我希望你能帮忙。
我在 Fragment 中实现了列表,通过单击列表来添加要添加的详细片段。 列表片段有其操作栏按钮,而详细信息有另一个操作栏按钮。
细节在寻呼机中实现。寻呼机片段加载片段的位置 此外,该列表是导航抽屉中的一个片段
层次结构是 导航抽屉>>列表片段>>页面片段>>详细片段
我在从列表单击到页面时使用了添加片段,因为我不想像使用替换时那样在返回列表时重新加载。
我的问题是 当我返回列表时,操作栏按钮不会更新。它保留了细节片段的按钮
列表片段。在项目上点击
PageFragment fragment = new PageFragment();
FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.frame_container, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar actions click
switch (item.getItemId()) {
case android.R.id.home:
{
getActivity().onBackPressed();
return true;
}
这是导航抽屉活动中的 backPressed
@Override
public void onBackPressed() {
super.onBackPressed();
Log.i("Main ","Back pressed");
mDrawerToggle.setDrawerIndicatorEnabled(true);
}
在页面片段和详细信息片段上,我会覆盖以下选项
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
{
getActivity().onBackPressed();
return true;
}
}
我做得对吗?以及如何解决操作栏按钮问题 当我回到列表时
提前致谢
【问题讨论】:
-
你应该使用
NavUtils而不是手动调用onBackPressed()或者FragmentManager来弹出backstack。 -
我尝试弹出片段管理器的backstack并得到相同的结果
标签: android android-actionbar fragment