首页 > 解决方案 > 以编程方式将 TextView 样式设置为 TabLayout.Tab 默认样式

问题描述

我在以下情况下遇到问题:我确实将自定义视图设置为 TabLayout.Tab(不是所有现有选项卡),并且我需要附加到某些选项卡的自定义视图与默认选项卡相同。

TabLayout.Tab tab = retrieveTabAt(TAB_POS);
 TextView textview = new TextView(context);
 // modify the textview with needed info
 tab.setCustomView(textview);

一切都完美无缺,唯一的问题是默认选项卡有点粗体而且完全不同,我需要那个 textview 来获得相同的效果/样式。

我尝试将 textview 的字体设置为 BOLD,但它太粗了。

如何使自定义 textview 看起来像默认选项卡?

您可以在下面看到差异:

简单的图像

和一个在 textview 上设置粗体的: 粗体图像

标签: android

解决方案


为您的标签创建一个样式,如下所示:

<style name="AppTabLayout" parent="Widget.Design.TabLayout">
        <item name="tabTextAppearance">@style/AppTabTextAppearance</item>
</style>

在文本外观上添加您想要的值,例如。

<style name="AppTabTextAppearance" parent="TextAppearance.Design.Tab">
        <item name="android:textSize">16sp</item>
        <item name="android:textColor">@color/black</item>
        <item name="textAllCaps">true</item>
 </style>

然后在您的自定义文本视图的样式中匹配上述值


推荐阅读