您可以試試幫我理解我的Android風格和主題概念嗎?管理Android的分層樣式(育兒)
這裏是我的問題:我希望我的按鈕,根據下面的屬性行爲:style="?android:attr/buttonStyleSmall"
在這種情況下,該按鈕看起來是這樣的:
因爲我的黑色背景,我覺得有我的按鈕上有一個白色的字體顏色,以獲得更好的對比度。我決定再在我的styles.xml文件中創建一個元素來覆蓋buttonStyleSmall
風格,並添加這個白色字體,再加上一些其他的變化:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="MyTheme" parent="android:Theme.Holo.Light">
<item name="android:buttonStyle">@style/ButtonText</item>
</style>
<style name="ButtonText" parent="@android:attr/buttonStyleSmall">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:textColor">#ffffff</item>
<item name="android:gravity">center</item>
<item name="android:paddingLeft">20dp</item>
<item name="android:paddingRight">20dp</item>
<item name="android:paddingTop">10dp</item>
<item name="android:paddingBottom">10dp</item>
<item name="android:textSize">14sp</item>
<item name="android:textStyle">bold</item>
</style>
</resources>
現在,我創建了一個名爲MyTheme
主題,我打算申請我的整個申請。這樣我就不必在每次創建按鈕時都聲明按鈕的樣式。所以,我只會有按鈕的聲明是這樣的:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
不幸的是,當我這樣做,這是我按鈕有:
發生了什麼?我在我的樣式中聲明瞭父屬性,爲什麼按鈕中的灰色框消失了?它也不像一個按鈕(即:當我點擊它時,它不會改變顏色)。 如果我宣佈這樣的按鈕:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/ButtonText"
android:text="Button" />
的同樣的問題發生。
我在做什麼錯?
謝謝你們, 費利佩
那麼,那個作品:-) 你是不是告訴我那麼屬性style =「?android:attr/buttonStyleSmall」是什麼意思?它是否只能用於XML? – 2013-04-30 18:54:03
[樣式和主題](http://developer.android.com/guide/topics/ui/themes.html#PlatformStyles)指南的最後一段似乎將屬性(android:attr)描述爲XML屬性的可用選項,而風格(android:style)是實際的風格。我相信android:attr/buttonStyleSmall只是對風格的引用。 – 2013-04-30 18:59:20
謝謝Tanis。非常感激 – 2013-04-30 19:00:05