2017-09-20 37 views
0

到子視圖我有以下幾點看法層次結構:機器人如何應用風格XML

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

我需要2種cards,一個較小的TextView S和其他具有較大TextView秒。我想創建2 card樣式並將它們應用於不同的用例。我怎樣才能做到這一點? 請注意,我需要申請樣式子視圖(即text view),不卡視圖本身

回答

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的樣式爲 ,則子View元素不會繼承樣式屬性 ;只有直接應用 樣式的元素纔會應用其屬性。但是,您可以將樣式應用於所有視圖元素,方法是將樣式應用爲主題。

+0

也許我的問題不清楚。我想要2張卡片,每張卡片都有不同的文字視圖。 – OMGPOP

+0

我需要使用不同的文本視圖風格 – OMGPOP

+0

如果您想要應用複製到其子項的樣式,則需要將樣式應用爲主題,但它應用於視圖和所有子元素 – SQLiteNoob