【问题标题】:Changing Action Bar items and title on adding Fragments在添加片段时更改操作栏项目和标题
【发布时间】:2015-07-06 10:30:40
【问题描述】:

假设我有一个可见的FragmentA

我添加了一个FragmentB(关键字:add,而不是replace),将其添加到Fragment 回栈并提交。

我这样做的问题是:

1)FragmentB的动作菜单的动作按钮被添加,FragmentA的动作按钮没有被移除。

2) ActionBar 的标题没有改变(尽管在 onResume()FragmentB 中调用了 getActivity().setTitle("FragmentB")

我可以通过在显示FragmentB 时调用replace 而不是add 来解决这两个问题,但是,由于很多原因,我特别需要add Fragment(其中一个是,我需要在显示 B) 时保留FragmentA 的状态。

那么我将如何按照描述正确更新ActionBar

【问题讨论】:

    标签: android android-fragments android-actionbar


    【解决方案1】:

    试试这段代码:

    getActivity().getActionBar().setTitle("FragmentB");
    

    【讨论】:

      【解决方案2】:

      在您的活动中使用此代码..(用于设置片段的标题)。

      public void setActionBarTitle(String title) {
          getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);
          getSupportActionBar().setDisplayHomeAsUpEnabled(true);
          getSupportActionBar().setTitle(title);
      }
      

      从您的片段 onResume() 中调用它

      // Set title bar
      ((MyActivity) getActivity())
                  .setActionBarTitle("Fragment A");
      

      并且在每个片段中,您需要重写 onCreateOptionsMenu() 以加载该片段的菜单。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多