首页 > 解决方案 > 更改布局中所有 TextView 的样式

问题描述

我有一个包含许多 TextView 和深色背景的布局,所以我想将所有TextView 的文本颜色更改为浅色。

除了去每个和设置之外,有没有办法做到这一点android:textColor='white'

change font of all textviews提出了类似的问题,但它是从 2014 年开始的,那里没有真正的答案。

标签: androidandroid-styles

解决方案


我在输入问题时找到了答案。

您想通过样式资源设置 TextViews 的外观,而不是手动设置。然后,让样式值继承自另一个,代表整个布局。

<TextView ...
      android:textAppearance="@style/item_name"/>
<TextView ...
      android:textAppearance="@style/item_details"/>

在 style.xml 中:

<style name="LayoutStyle">
    <item name="android:textColor">#C0C0C0</item>
</style>
<style name="item_name" parent="LayoutStyle">
    <item name="android:textStyle">bold</item>
    <item name="android:textSize">20sp</item>
</style>
<style name="item_details" parent="LayoutStyle">
    <item name="android:textStyle">bold</item>
    <item name="android:textSize">20sp</item>
</style>

推荐阅读