1. 程式人生 > >Android style 繼承

Android style 繼承

edittext class extc 繼承 logs 完全 必須 方式 color

  style作用在單個視圖或控件上,抽取共有的屬性,實現復用。

  style的繼承有兩種方式:

  通過parent標識父style

1 <style name="GreenText" parent="@android:style/TextAppearance">
2     <item name="android:textColor">#00FF00</item>
3 </style>

  父style的name作為前綴加“.”連接新style的name

1 <style name="CodeFont.Red">
2     <
item name="android:textColor">#FF0000</item> 3 </style>

  其中,第2種方式可以無限連接子style實現多層繼承。

1 <style name="CodeFont.Red.Big">
2     <item name="android:textSize">30sp</item>
3 </style>

  

  相對第1種,Android對第2種方式做出的限制就是引用的style必須是由自己定義的,或者說父style和子style必須是定義在同一個程序內,不能引用第三方或系統的style。畢竟對於系統的style的引用是需要加上android:前綴作為命名空間。其次在使用style時,對於第2種方式定義的style,必須引用其完全的名字,也就是說必須要包含完整的前綴和名字:

1 <EditText
2     style="@style/CodeFont.Red.Big"
3     ... />

  Android對於第1種定義方式並沒有限制,所以所有以第2種方式定義的style都可以轉成第1種:

1 <style name="Big" parent="CodeFont.Red">
2     <item name="android:textSize">30sp</item>
3 </style>

  

  當使用parent指定父style後,前綴方式則不再起作用,只是作為style的名字。也就是說,Android的style不支持多繼承,只能一層一層地繼承。

  

  參考資料

  Style在Android中的繼承關系

  

  

  

.

  

Android style 繼承