android - 以编程方式将 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 上设置粗体的: 粗体图像
解决方案
为您的标签创建一个样式,如下所示:
<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>
然后在您的自定义文本视图的样式中匹配上述值
推荐阅读
- node.js - 角度的快速路线
- c# - 多部分/格式数据请求
- python - 来自 scd2 pandas 数据框的 python 查询 - 在 from_date 和 to_date 之间查找
- c - 续:从文件中索引单词的程序的分段错误
- excel - 如何使用 Python 读取仅可见单元格?
- flutter - 如何在颤动中将图库图像传递到另一个全屏
- java - 如何在 Selenium 中连接 firefox 现有会话?
- git - 我们可以从一个 Repo 中使用多个 Flutter 插件吗?
- sql - Presto-Sql:将字符串格式的时间转换为日期格式
- javascript - 如何使用 jest 在 vue js 中测试 void 函数?