我有FragmentA和FragmentB,当FragmentA重新可见时,设置"活动"的标题有问题。
流量
- FragmentA可见(未添加到后台)
- 添加碎片B(添加到后台)
- 按下back按钮,不是默认实现,但需要在Fragment中捕获它,但我执行
getActivity().getSupportFragmentManager().popBackStack();
现在,当FragmentA重新可见时,必须再次更改"活动"的标题比如,FragmentA title="A",FragmentB title="B"。但是当FragmentA重新可见时,标题仍然是"B",因为在FragmentA中没有调用onResume。我有哪些选项可以在FragmentA中始终将标题设置为"A",这是可见的。
代码:
FragmentA
@Override
public void onResume() {
super.onResume();
getActivity().setTitle("POI's");
}
碎片B
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
...
getActivity().setTitle("POI");
...
}
我用两个片段测试了一个"活动",效果很好。请参阅以下代码。
片段A:显示应用程序名称
@Override
public void onResume() {
super.onResume();
getActivity().setTitle(R.string.app_name);
}
片段B:显示应用程序名称
@Override
public void onResume() {
super.onResume();
getActivity().setTitle("fragment B");
}
片段A到B交易代码:
getActivity().getSupportFragmentManager().beginTransaction()
.replace(R.id.container,new FragmentB())
.addToBackStack(null)
.commit();
更新:需要替换像"replace(R.id.container,new FragmentB())
"这样的片段,而不是将其添加到FragmentManager中以更改活动的标题。
尝试执行此
getActivity().getActionBar().setDisplayShowTitleEnabled(true);
getActivity().getActionBar().setTitle("your title");