在添加片段时更改操作栏项目和标题

时间:2015-07-06 10:30:41

标签: android android-fragments android-actionbar

我们说我有FragmentA可见。

我添加FragmentB(关键字:add,而不是replace),将其添加到Fragment后台并提交。

我这样做的问题是:

1)添加了FragmentB操作菜单的操作按钮,但未删除FragmentA的操作按钮。

2)ActionBar的标题不会改变(尽管在getActivity().setTitle("FragmentB")的{​​{1}}中呼叫onResume()

我可以在显示FragmentB时通过调用replace而不是add来解决这两个问题,但出于很多原因,我特别需要FragmentB片段代替({1}}其中一个是,我需要保留状态add,同时显示B)。

那么我将如何正确地更新FragmentA

2 个答案:

答案 0 :(得分:1)

试试这段代码:

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

答案 1 :(得分:0)

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

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()以加载该片段的菜单。