【问题标题】:How to customize the Action Bar subtitle Font?如何自定义操作栏字幕字体?
【发布时间】:2015-06-24 13:54:09
【问题描述】:

我创建了一个 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 中,除了标题,我还有 Subtitle。但是我想自定义字幕。在自定义中,我指的是字体大小、颜色和字体。

我尝试了各种主题和风格,但仍然不成功。

如果有一个简单完整的例子来说明如何做到这一点,那真的很有帮助。谢谢!

【问题讨论】:

    标签: android android-actionbar-compat android-toolbar android-appcompat


    【解决方案1】:

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

    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 在他的评论中解释的那样,工具栏的大小是固定的,与其他小部件不同,它不会扩展以包含因更改手机设置而放大的文本。

    【讨论】:

    • 太棒了!谢谢!!我几乎选择了不太理想的解决方案,即getSupportActionBar().setSubtitle(Html.fromHtml("&lt;small&gt;" + title + "&lt;/small&gt;"));
    • 对于文本大小,您应该使用 sp 而不是 dp
    • @FrancescoDonzello 检查 Android 源代码,他们使用 dp 作为工具栏文本大小。这是有道理的,因为在手机设置中更改基本字体大小时工具栏高度不会改变。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多