從使用角度理解android中的them和style

Google的官方文檔中關於theme和style說明還不夠詳細,特補充以下:

1.Style和Theme都是屬性集合,他們的實現原理是一致的,差別在於用途的不同;

2.Style只包含某個控件的屬性值,例如width、height、backcolor等等,僅給控件使用來填充自身屬性的,所以Style中的屬性,都應能被關聯控件識別,不屬於關聯控件屬性的不應改定義Style中,例如TextView的Style中,不應該出現一個“ABC”這樣的屬性;

3.Theme則是單純的屬性值集合,相當於一個數據庫,跟使用者無關,裏面放置什麼數據不做限制,僅供使用者共享引用這些屬性。例如某控件屬性值可以通過“?attr/abc”來引用Theme中的"abc"屬性值;

4.Style的有效範圍僅限於單個控件;

5.Theme的有效範圍覆蓋使用者以及子控件(全局型數據庫);

6.APP的Theme中包含各控件的默認Style引用,這樣控件即使沒有顯式地指明Style,也會使用APP Theme中的Style;

7.控件額外顯式地指定Style,則指定Style中包含的屬性會覆蓋APP Theme指定的默認Style屬性。例如xml中寫了“style=@style/abc”,則“abc”style中的屬性會覆蓋APP Theme中的相關屬性。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章