如何在Material Design TabLayout中更改字体大小(Android)?

3

我一直试图在网上寻找设置TabLayout TabItems字体大小的方法,但似乎没有一个适合我的。这是我最后尝试引用的链接:link

以下是我到目前为止实现的内容,不确定为什么它无法从样式中获取textSize

在xml中:

<com.google.android.material.tabs.TabLayout
                android:id="@+id/tabLayoutForgot"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/header_height"
                app:layout_constraintTop_toBottomOf="@+id/imageViewLogo"
                app:tabIndicatorColor="@color/text_color"
                app:tabSelectedTextColor="@color/text_color"
                app:tabGravity="fill"
                app:tabTextAppearance="@style/MyCustomTabLayout"
                app:tabMode="fixed"
                app:tabIndicatorFullWidth="false"
                app:tabTextColor="@color/text_color" />

在 themes.xml 文件中:
<style name="MyCustomTabLayout" parent="@android:style/TextAppearance.Widget.TabWidget">
        <item name="textAllCaps">false</item>
        <item name="android:textSize">20sp</item>
        <item name="android:fontFamily">@font/roboto_medium</item>
        <item name="android:textColor">@color/text_color</item>
    </style>

这个函数可以完成其他任务,例如textAllCapsfontFamily,但似乎无法使用textSize。感谢任何帮助。
4个回答

3
您可以按照以下方式自定义TabLayout的文本颜色、文本大小、字体等:

您可以自定义TabLayout的文本颜色、文本大小、字体等,如下所示

<com.google.android.material.tabs.TabLayout
        //
 app:tabTextAppearance="@style/TabTextAppearance" />


<style name="TabTextAppearance" parent="TextAppearance.AppCompat.Medium">
    <item name="android:textColor">#9F9F9F</item>
    <item name="android:textSize">12sp</item>
    <item name="android:fontFamily">@font/cera_pro_medium</item>
</style>

0

你应该从TextAppearance.Design.Tab继承你的样式。首先创建一个样式,

<style name="MyStyle" parent="TextAppearance.Design.Tab">
    <item name="android:textSize">16sp</item>
</style>

然后在Tablayout中像这样使用它:

<android.support.design.widget.TabLayout
            app:tabTextAppearance="@style/MyStyle"
            ...
            />

希望它能够正常工作


1
嗨,我会试一下。顺便说一句,我正在使用com.google.android.material.tabs.TabLayout而不是android.support.design.widget.TabLayout。不确定这是否会影响任何东西。但我会尝试并在这里更新。 - Darpal
应该会正常工作,我猜。如果不行,请告诉我。 - Fakhrul Siddiqei
还是不行 :( - Darpal

0

尝试将style应用于com.google.android.material.tabs.TabLayout

将主要样式的parent添加为@style/Widget.MaterialComponents.TabLayout

tabTextAppearance样式的parent添加为@style/Widget.AppCompat.TextView

<style name="MyCustomTabLayout" parent="@style/Widget.MaterialComponents.TabLayout">
    <item name="tabSelectedTextColor">@color/black</item>
    <item name="tabTextColor">@color/purple_700</item>
    <item name="tabIndicatorColor">@color/black</item>
    <item name="tabTextAppearance">@style/TabText</item>
</style>

<style name="TabText" parent="@style/Widget.AppCompat.TextView">
    <item name="textAllCaps">false</item>
    <item name="android:textSize">20sp</item>
</style>

在 XML 中:
<com.google.android.material.tabs.TabLayout
      android:id="@+id/tabLayoutForgot"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_marginTop="10dp"
      app:tabGravity="fill"
      style="@style/MyCustomTabLayout"
      app:tabMode="fixed"
      app:tabIndicatorFullWidth="false"/>

0

好的,我成功找到了解决方案。

dimens.xml中添加以下代码行,不知何故它对我起作用了。

<dimen name="design_tab_text_size_2line" tools:override="true">20sp</dimen>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接