我有FragmentA和FragmentB,并且在FragmentA变得可见时设置我的Activity的标题时出现问题。
流量
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");
}
FragmentB
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
...
getActivity().setTitle("POI");
...
}
答案 0 :(得分:16)
我测试了一个Activity,其中有两个片段工作正常。请参阅以下代码。
片段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以更改活动的标题。
答案 1 :(得分:3)
尝试这样做
getActivity().getActionBar().setDisplayShowTitleEnabled(true);
getActivity().getActionBar().setTitle("your title");