Android style 繼承
阿新 • • 發佈:2017-10-01
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 繼承