JDN*_*N96 8 android android-titlebar android-fragments android-actionbar
我有一个片段,我尝试更改操作栏的标题.这一直有效,直到我添加setHasOptionsMenu(true)到片段中.我怎么解决这个问题?因为我需要optionsmenu片段中的.
在片段中
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
((MainActivity)getActivity()).setActionBarTitle(getString(R.string.title_view_tree));
setHasOptionsMenu(true);
return inflater.inflate(R.layout.fragment_view_tree, container, false);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_view_tree,menu);
super.onCreateOptionsMenu(menu,inflater);
}
Run Code Online (Sandbox Code Playgroud)
在MainActivity中:
public void setActionBarTitle(String title) {
getSupportActionBar().setTitle(title);
}
Run Code Online (Sandbox Code Playgroud)
当我setHasOptionsMenu(true)通过使用//然后actionbar正确使用更改的标题禁用.
从Fragment的onCreateOptionMenu调用setActionBarTitle .
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_main4, menu);
((MainActivity)getActivity()).setActionBarTitle(getString(R.string.title_view_tree));
super.onCreateOptionsMenu(menu, inflater);
}
Run Code Online (Sandbox Code Playgroud)
我建议使用回调接口与活动进行交互.
在要为其设置标题的片段中:只需调用
getActivity().setTitle("片段 X");
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
getActivity().setTitle("Fragment X");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1260 次 |
| 最近记录: |