我的应用工具栏在这里:
toolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
当我想设置屏幕标题时,我必须执行以下操作:
ActionBar bar = getSupportActionBar();
if (bar != null) {
bar.setTitle(SCREEN_TITLE);
}
我的问题是,为什么在调用toolbar.setTitle()时不起作用。但我需要首先获得操作栏然后我可以设置标题?
P.S。另一方面,我可以正常设置工具栏图标,而无需获取操作栏:
toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white);
答案 0 :(得分:2)
Toolbar
是在应用程序布局中使用的操作栏的概括。
与操作栏不同,工具栏不是窗口装饰的一部分。您可以像任何其他窗口小部件一样定义它并将其放置...因此您可以自由地将它放置在父布局中的任何位置。
您可以自由地将任何小部件放在工具栏中。
您可以定义多个工具栏。
Toolbar
可以放置在视图层次结构中的任意嵌套级别。应用程序可以选择使用Toolbar
方法将setActionBar()
指定为活动的操作栏。
由于Toolbar
是ActionBar
的概括。您必须先将Toolbar
设置为ActionBar
,然后才能使用ActionBar
的所有方法。
修改强>
以下是解释工具栏概念的Link。
以下是在{android}问题中报告的bug link:问题是他们建议您调用setSupportActionBar(Toolbar)
后,操作栏负责处理标题,这意味着您需要调用{{1}设置自定义标题。它还解释了为什么getSupportActionBar().setTitle(...)
有效。
我希望它有所帮助!