android如何在xml中将样式应用于子视图

时间:2017-09-20 17:26:30

标签: android

我有以下视图hierachy:

<CardView>
  <TextView />
  <ImageView />
</CardView>

我需要两种cards,一种TextView较小,另一种TextView较大。我想创建2个card样式并将它们应用于不同的用例。我怎样才能做到这一点? 请注意,我需要将样式应用于子视图(即text view),而不是卡片视图本身

1 个答案:

答案 0 :(得分:1)

风格的基本方式是:

styles.xml中的res/values文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomText" parent="@style/Text">
        <item name="android:textSize">20sp</item>
        <item name="android:textColor">#008</item>
    </style>
</resources>

和您的TextView

<?xml version="1.0" encoding="utf-8"?>
<TextView
    style="@style/CustomText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello, World!" />

因此,您需要创建CustomText1和CustomText2并将它们应用于正确的TextView。

如果您需要将样式应用于子视图,则可以将它们应用为主题。来自docs

  

将样式应用于布局中的单个视图时,属性   由样式定义的仅应用于该视图。如果是一种风格   应用于ViewGroup时,子视图元素不会继承   风格属性;只有您直接应用的元素   style应用其属性。但是,您可以应用样式   它适用于所有View元素 - 将样式应用为主题。

相关问题