我有一个包含3个片段的Activity。在Activity中有一个没有菜单项的工具栏。菜单项通过片段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 ,菜单会发生变化。
但是工具栏只在我的Activity中调用,它包含3个片段。
Acitivty onCreate()
toolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
此外,Activity还有一个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);
在Activity XML中,片段在工具栏下调用。 所有这一切都说明了。是在活动中调用工具栏还是在每个片段中单独调用?
答案 0 :(得分:3)
最好是在活动中调用工具栏还是在每个片段中单独调用?
我的建议是>在Activity中初始化工具栏,在活动中创建方法以更新/添加/删除工具栏的标题等。并从片段中调用这些方法。因此,在一个地方定义/声明它并通过调用片段中的方法(在活动中)来利用它。