Android之Theme.AppCompat.Light 繼承關系圖及Theme定制思路

jlnp0369 8年前發布 | 13K 次閱讀 Android開發 移動開發

轉自:http://enlangtech.com/?p=356

Android應用程序的主題(Theme)定制真是個頭疼的問題,不同的Android版本導致分支眾多,主題的屬性(Property)又很多并且沒有文檔說明,這樣的情況下如果沒有一個清晰的關系圖,很容易不知道從哪里下手去定制。Android Lollipop發布后,Google更新了Support Library V7,用于兼容Pre-Lollipop的設備,使其可以使用部分Material Design的特性。Material Design是Google力推的新一代跨平臺界面設計標準,得到了設計界的廣泛認可, Android應用向這個設計標準遷移已不可避免。因此從現在開始,建議新開發的Android應用程序把父主題設為Theme.AppCompat.Light或者其子主題,再根據不同的版本進行對應的定制化。廢話不說了,下面就是主題的關系圖(用類圖表示):

關系圖中的屬性主要集中在ActionBar、文字顏色、應用的基本配色等,其它的需要的屬性基本上是可以根據關系找到的。從圖中可以看出,不同版本的主題屬性是有一些差異的,因此對某些屬性定制而言,在你的應用中也需要對版本進行區分,具體來說就是:除了默認的values目錄外,你還需要對不同版本建立不同的values目錄,根據繼承關系,你起碼應該建立values-v11、values-v14、values-v21這三個目錄,在這些目錄中都放一個styles.xml,里面是你應用程序的主題,這個主題都應該繼承自Theme.AppComapt.Light及其子主題(對于所有版本一樣的屬性可以在values的目錄的styles.xml中建立1個根主題,便于不同版本的主題進行重用),那么沒有版本差異的屬性設置就修改values目錄中styles.xml,有版本差異的主題就修改對應版本的values目錄中的styles.xml,這樣就可以很好地維持了版本的兼容性,又可以使用最新版Lollipop的主題特性。

 本文由用戶 jlnp0369 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!