android-为活动或每个片段分别制作一个工具栏?

我有一个包含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?

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

上一篇:android-状态栏后面的工具栏


下一篇:java-无法更改工具栏的颜色