2014-09-23 41 views
0

我正在開發android 2.3(v8)的android應用程序,並針對android 4.0(v14)進行編譯。我在嘗試將Holo.Light應用於我的應用程序方面做了一些研究,但迄今爲止我所遇到的唯一解決方案是創建自己的自定義主題或使用這個名爲HoloEverywhere的開源項目。爲什麼Android主題不向後兼容?

現在我感到困惑的是爲什麼主題不向後兼容?是因爲有新的android屬性或視圖添加到較新的API,還是因爲其他原因?

對此的任何解釋都會非常有幫助!由於

回答

0

來自:http://developer.android.com/guide/topics/ui/themes.html

「的Android新版本有可供 應用程序的其他主題,你可能想在這些 平臺上運行,同時仍然與舊版本兼容而使用這些你可以 做到這一點通過使用資源選擇不同父主題之間 切換自定義主題的基礎上,平臺版本」

所以你應該做的是有styles.xml的兩個副本,一個將被放置在res /價值/ styles.xml - 針對Android版本< 3.0的向後兼容性,默認主題:

<style name="LightThemeSelector" parent="android:Theme.Light"> 
... 
</style> 

而不是把下RES /值-V11另一styles.xml的Android版本> = 3.0霍洛主題:

<style name="LightThemeSelector" parent="android:Theme.Holo.Light"> 
... 
</style> 

這樣你獲得和使用全息主題在可能情況下,這是目前整個Android市場的88%。

+0

是的我明白,但有沒有辦法在設備<4.0上實現Holo?我已經看到了應用程序在較老的apis上有更新的主題。這些自定義樣式還是有可用於舊版apis的這些主題的版本? – quicksilver 2014-09-23 09:10:48

+0

我剛剛遇到這個帖子。清除了我的懷疑http://stackoverflow.com/questions/13821395/is-it-possible-to-make-an-edittext-in-android-2-x-that-looks-like-an-edittext-fr反正謝謝爲你的幫助:) – quicksilver 2014-09-23 09:48:50

+0

使用自定義主題,你可以做任何你想要的。沒有理由你不能有這樣的全息主題。 HoloEverywhere圖書館就是這麼做的。 您提供的鏈接已損壞,但此鏈接指向HoloEverywhere:https://github.com/Prototik/HoloEverywhere – ziv 2014-09-23 09:54:34