我有以下视图hierachy:
<CardView>
<TextView />
<ImageView />
</CardView>
我需要两种cards
,一种TextView
较小,另一种TextView
较大。我想创建2个card
样式并将它们应用于不同的用例。我怎样才能做到这一点?
请注意,我需要将样式应用于子视图(即text view
),而不是卡片视图本身
答案 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元素 - 将样式应用为主题。