为活动或每个片段单独创建一个工具栏?

时间:2015-11-13 00:00:03

标签: android android-fragments fragment toolbar android-optionsmenu

我有一个包含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中,片段在工具栏下调用。 所有这一切都说明了。是在活动中调用工具栏还是在每个片段中单独调用?

1 个答案:

答案 0 :(得分:3)

  

最好是在活动中调用工具栏还是在每个片段中单独调用?

我的建议是>在Activity中初始化工具栏,在活动中创建方法以更新/添加/删除工具栏的标题等。并从片段中调用这些方法。因此,在一个地方定义/声明它并通过调用片段中的方法(在活动中)来利用它。