2014-09-23 44 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