2017-04-23 66 views
-1

已知:主題/風格的優先順序?

  • 四個程序兼容性活動A,B,C和D.
  • 四個自定義的主題(T1,T2,T3和T4),其從程序兼容性主題繼承。

另外:

  • T1在清單文件應用到應用程序。
  • T2被施加到A中的清單文件
  • T3在編程的onCreate施加到B的內部()
  • T4中對C的佈局文件的根元素施加。

運行時每個活動中的主題是什麼?主題是否優先?他們是否合併或覆蓋對方?

如果將T2應用於清單文件內部,那麼D會發生什麼情況,然後以編程方式將T3和佈局文件應用T4?

風格以何種順序通過各種方式組合應用?

+2

有關定義父屬性你可以閱讀更多聽起來像一個家庭作業的問題....你運行代碼時看到了什麼? –

+0

有類似的設置,不知道發生了什麼。以編程方式/佈局設置主題不做任何事情,將應用程序和T2設置爲A會導致某種合併 –

+1

可能的[Android中的樣式和主題的優先級是什麼?]的重複(http://stackoverflow.com/questions/12653988/whats-the-precedence-style-and-themes-in-android) –

回答

1

T1在清單文件中應用於應用程序。

這適用於整個應用程序,你會得到你擴展的主題和你在那裏覆蓋的任何東西。例如,應用程序範圍的工具欄顏色是常用的顏色。

T2加到A清單文件內

你已經創建了一個新的主題依賴鏈爲這一個活動,除非你使用了相同的父應用程序的主題,這將有獨立的屬性,如不同的工具欄顏色。

您仍然會維護應用程序設置,如隱藏的系統UI /全屏主題。

T3在的onCreate()編程施加到B

這將覆蓋任何在清單中爲該活動集,並且不應大於T2是不同的

T4被施加在C的佈局文件的根元素中。

這隻影響那一個視圖。例如,如果應用程序或活動使用FullScreen主題,那麼仍然會應用這個主題,但是您另外已經對此視圖進行了風格化。

例如,根視圖可能只是一個TextView。它不必是一個RelativeLayout,FrameLayout,CoordinatorLayout等。

您通常不會將應用程序/活動級別樣式應用於這些單獨的視圖。也不是,我覺得這些屬性得到源代碼中應用


注:沒有concernable差異styles.xmlthemes.xml之間


Styles and Themes

+0

在layout.xml中設置主題怎麼樣?然後1.程序性覆蓋清單。 2. manifest.activity覆蓋manifest.app? –

+0

取決於你正在談論的XML的哪個元素。例如,頂部RelativeLayout中的樣式是與manifest.activity分離的主題,它與manifest.app –

+0

仍然不同。如果將其應用於路由元素,例如。 T2是NoToolbar的子項,T3是基本的apppcompat主題的子項。將清單中的T3和T2應用於佈局xml中的根元素。活動然後不會有工具欄 –