如何自定义Action Bar字幕字体?

How to customize the Action Bar subtitle Font?

我创建了一个 ActionBar (android.support.v7.widget.Toolbar),如下所示。

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myToolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize">
</android.support.v7.widget.Toolbar>

在我的ActionBar中,除了标题,我还有副标题。但是我想自定义字幕。在自定义中,我指的是字体大小、颜色和字体。

我尝试了各种主题和样式,但仍然没有成功。

如果有一个简单的完整示例说明如何做到这一点,那将非常有帮助。谢谢!

如果您的布局文件中还没有此命名空间属性,请添加它:

xmlns:app="http://schemas.android.com/apk/res-auto"

像这样更新布局文件中的工具栏属性:

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myToolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:titleTextAppearance="@style/ToolbarTitleAppearance"
    app:subtitleTextAppearance="@style/ToolbarSubtitleAppearance"
    android:minHeight="?attr/actionBarSize">
</android.support.v7.widget.Toolbar>

添加如下样式:

<style name="ToolbarTitleAppearance" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textSize">20dp</item>
    <!-- include other attributes you want to change: textColor, textStyle, etc -->
</style>

<style name="ToolbarSubtitleAppearance" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle">
    <item name="android:textSize">14dp</item>
</style>

对该答案的评论讨论了 textSize 的单位应该是 dp 还是 sp。当我最初写这个答案时,我查看了 Android 源文件,发现使用了 dp 。我建议坚持下去。正如 FrancescoDonzello 在他的评论中解释的那样,工具栏的大小是固定的,并且与其他小部件不同,它不会扩展以包含因更改 phone 设置而放大的文本。