我有一个包含3个片段的活动.活动中有一个没有菜单项的工具栏.菜单项通过onCreateOptionsmenu()上的片段添加.
我的代码:
在片段onCreate()中
setHasOptionsMenu(true);
onCreateOptionsMenu()
menu.clear();
inflater.inflate(R.menu.menu_location_search, menu);
super.onCreateOptionsMenu(menu, inflater);
除R.menu以外的所有3个片段都相同.是不同的.因此,取决于打开哪个片段A,B或C,菜单将发生变化.
但是,仅在我的“活动”中调用工具栏,其中包含3个片段.
活动onCreate()
toolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
该活动还具有NavigationDrawer.
NavigationDrawerFragment drawerFragment = (NavigationDrawerFragment)
manager.findFragmentById(R.id.fragment_navigation_drawer);
drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar);
在活动XML中,片段在工具栏下调用.
如此说.最好在“活动”中或在每个“片段”中分别调用工具栏?
解决方法:
Is it better to call the Toolbar in the Activity or separately in each Fragment?
我的建议是>在活动中初始化工具栏,在活动中创建方法以更新/添加/删除工具栏的标题等.并从片段中调用这些方法.因此,在一个地方定义/声明它,并通过从片段调用方法(在活动中)来使用它.