无法更改折叠工具栏的字体样式

Can't change font style for collapsing toolbar

我的布局中包含折叠工具栏,其中包含 ImageView 和工具栏 并想更改标题的默认字体。我制作了以下样式并将其应用于折叠工具栏和工具栏

    <style name="ToolbarTheme" parent="ThemeOverlay.AppCompat.Dark">
    <item name="android:fontFamily">sans-serif-black</item>
    </style>

AppBar 的布局

 <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:fitsSystemWindows="true"
        android:layout_height="200dp">

        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="@color/fuel_yellow"
            android:theme="@style/ToolbarTheme"
            app:popupTheme="@style/ToolbarTheme"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:scaleType="centerCrop"
                android:fitsSystemWindows="true"
                android:src="@drawable/noclegi"/>

            <androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_scrollFlags="scroll|enterAlways"
                android:fitsSystemWindows="true"
                app:layout_collapseMode="pin"/>

        </com.google.android.material.appbar.CollapsingToolbarLayout>
    </com.google.android.material.appbar.AppBarLayout>

除了标题和导航图标的颜色外,没有任何变化。问题出在哪里?

要更改 CollapsingToolbarLayout 的字体样式,您可以使用属性 app:expandedTitleTextAppearanceapp:collapsedTitleTextAppearance 并使用您的自定义字体样式.

折叠工具栏将如下所示:

<com.google.android.material.appbar.CollapsingToolbarLayout
      android:id="@+id/collapsing_toolbar"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:expandedTitleTextAppearance="@style/MyExpandedTitle"
      app:collapsedTitleTextAppearance="@style/MyCollapsedTitle">

其中 @style/MyExpandedTitle 和 @style/MyCollapsedTitle 将是您的自定义 TextAppearance 样式,如下所示:

<style name="MyExpandedTitle" parent="@style/TextAppearance.Design.CollapsingToolbar.Expanded">
    <item name="android:fontFamily">sans-serif-black</item>
</style>

<style name="MyCollapsedTitle" parent="@style/TextAppearance.AppCompat.Title">
    <item name="android:fontFamily">sans-serif-black</item>
</style>

或者,如果您想使用自定义字体,将如下所示:

<style name="MyExpandedTitle" parent="@style/TextAppearance.Design.CollapsingToolbar.Expanded">
   <item name="fontFamily">@font/roboto_regular</item>
   <item name="android:fontFamily">@font/roboto_regular</item>
</style>

<style name="MyCollapsedTitle" parent="@style/TextAppearance.AppCompat.Title">
   <item name="fontFamily">@font/roboto_regular</item>
   <item name="android:fontFamily">@font/roboto_regular</item>
</style>