Android工具栏设置标题说明

Android Toolbar set title explanation

我的应用工具栏在这里:

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);

A Toolbar 是在应用程序布局中使用的操作栏的概括。

与操作栏不同,工具栏不是 window 的一部分 decor.You 定义它并像任何其他小部件一样放置它...因此您可以自由地将它放置在 [=49] 中的任何位置=]布局。

您可以自由地将任何小部件放入工具栏。

您可以定义多个工具栏。

Toolbar 可以放置在视图层次结构中的任意嵌套级别。应用程序可以选择使用 setActionBar() 方法将 Toolbar 指定为 Activity 的操作栏。

因为 ToolbarActionBar 的泛化。您必须先将 Toolbar 设置为 ActionBar 然后您可以使用 ActionBar.

的所有方法

编辑:

这里 Link 解释了工具栏的概念。

这是 bug link 在 android issues 中报告的:在 issue 中,他们建议一旦你调用 setSupportActionBar(Toolbar),Action Bar 就会负责处理标题,这意味着你需要调用 getSupportActionBar().setTitle(...) 设置自定义标题。它还解释了为什么 toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white); 有效。

希望对您有所帮助!