ActionBar在片段之间切换时更新

时间:2014-04-28 17:08:33

标签: android android-actionbar fragment

我为我的问题搜索解决方案,但没找到我想要的确切内容。我希望你能提供帮助。

我在Fragment中实现了列表,通过单击要添加的详细信息片段的列表。 列表片段有其操作栏按钮,而细节有另一个操作栏按钮。

细节在寻呼机中实现。寻呼机片段加载片段的位置 此外,列表是导航抽屉

中的片段 hirarachy是 导航抽屉>>列表片段>>页面片段>>细节片段

我从列表到页面点击时使用了添加片段,因为我不想重新加载,当我使用替换时,我会重新加载到列表中。

我的问题是 当我回到列表时,操作栏按钮不会更新。它保留了细节片段的按钮

列出片段。点击项目

 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);

    }

on Page片段和详细信息片段我覆盖了以下选项

 public boolean onOptionsItemSelected(MenuItem item) {


        switch (item.getItemId()) {
            case android.R.id.home:
            { 
                getActivity().onBackPressed();

                return true;

            }
}

我做得对吗?以及如何解决操作栏按钮问题 当我回到列表

提前致谢

1 个答案:

答案 0 :(得分:0)

invalidateOptionsMenu将导致重绘选项菜单。也许一些聪明的使用这种方法,加上onResume在你的活动中将解决你的问题。