【问题标题】:Android x collapsing toolbar font family cannot be changeAndroid x折叠工具栏字体系列无法更改
【发布时间】:2019-12-18 10:49:06
【问题描述】:

我正在尝试更改可折叠工具栏字体。我的代码在下面

<com.google.android.material.appbar.AppBarLayout
    android:id="@+id/appbarlayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <com.google.android.material.appbar.CollapsingToolbarLayout
        android:id="@+id/id_collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:contentScrim="@color/colorPrimary"
        app:layout_scrollFlags="scroll|snap|enterAlways"
        app:title="App Title">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="250dp"
            android:scaleType="centerCrop"
            android:src="@drawable/img" />

        <androidx.appcompat.widget.Toolbar
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:theme="@style/TextViewCustomFont"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" />

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

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

<style name="TextViewCustomFont">
    <item name="android:fontFamily">fonts/Montserrat-SemiBold.ttf</item>
</style>

我也在使用书法3, 所以,我尝试了 fontPath 而不是 android:fontFamily 然后,我从工具栏移动并检查了 android:theme="@style/TextViewCustomFont" 到 CollapsingToolbarLayout 以及所有这些组合。

我无法更改字体样式。

记住这是 androidx 不是旧的。 stackoverflow 中有很多旧问题,但没有一个像旧问题一样工作。

【问题讨论】:

  • 不确定,但我认为字体文件名“Montserrat-SemiBold”中的连字符“-”会导致问题。您是否尝试过删除或替换为下划线“_”?
  • @SafalFrom2050 是的,我试过了,结果一样。

标签: android androidx


【解决方案1】:

CollapsingToolbar你需要打电话给expandedTitleTextAppearancecollapsedTitleTextAppearance

XML

<com.google.android.material.appbar.CollapsingToolbarLayout
    app:expandedTitleTextAppearance="@style/TextViewCustomFont"
    app:collapsedTitleTextAppearance="@style/TextViewCustomFont"/>

Java

// Java example
CollapsingToolbarLayout collapsingToolbar = findViewById(R.id.collapsing_toolbar);
collapsingToolbar.setCollapsedTitleTypeface(TyperRoboto.ROBOTO_REGULAR());
collapsingToolbar.setExpandedTitleTypeface(TyperRoboto.ROBOTO_REGULAR());

科特林

// Kotlin example
collapsing_toolbar.apply {
    setCollapsedTitleTypeface(TyperRoboto.ROBOTO_REGULAR)
    setExpandedTitleTypeface(TyperRoboto.ROBOTO_REGULAR)
}

您可以得到更详细的答案here

【讨论】:

  • 你是第 3 个回答相同的人。我不明白为什么你们要在我没有做到的地方完成它。无论如何,其他人删除了他们的答案。你能确认它工作正常吗?你能不能在上面做一个简单的项目,然后在驱动器或其他地方分享它,或者在 Youtube 上制作最好的视频。说真的,我没有得到答案,谢谢
  • 你是如何设置你的标题的?我不会删除我的答案,因为我几乎可以肯定我知道答案,如果不知道,我会学到新的东西
  • 不要删除答案,因为stackoverflow.com/a/33174619/12255535 给出了这个问题的答案,低于你所提到的答案。我建议您在答案中添加这行代码。最后一点,通过使用 calligraphy3 我们无法做到这一点。
【解决方案2】:

CollapsingToolbarLayout布局中有一个这样的id

 <com.google.android.material.appbar.CollapsingToolbarLayout
            android:id="@+id/id_collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:contentScrim="@color/colorPrimary"
            app:layout_scrollFlags="scroll|snap|exitUntilCollapsed"
            app:title="App Title">

然后,在onCreate 方法中添加以下行

CollapsingToolbarLayout collapsingToolbar = findViewById(R.id.id_collapsing_toolbar);
final Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Montserrat-SemiBold.ttf");
collapsingToolbar.setCollapsedTitleTypeface(tf);
collapsingToolbar.setExpandedTitleTypeface(tf);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    相关资源
    最近更新 更多