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



我有一个带有折叠工具栏的布局,里面是ImageView和Toolbar并希望更改标题的默认字体。我制作了以下样式,并将其应用于折叠工具栏和工具栏

<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/MyColapsedTitle将是您的自定义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>

最新更新