標籤:oid 複用 ext eagle 必須 art div parent 完全
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 <EditText2 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 繼承