为什么android主题不向后兼容?

时间:2014-09-23 04:36:33

标签: android themes compatibility

我正在为android 2.3(v8)开发一个Android应用程序,并针对android 4.0(v14)进行编译。我做了一些关于尝试为我的应用程序应用Holo.Light的研究,但到目前为止我遇到的唯一解决方案是创建我自己的自定义主题或使用这个名为HoloEverywhere的开源项目。

现在我感到困惑的是为什么主题不向后兼容?是因为有新的Android属性或视图添加到较新的API,还是因为其他原因?

对此的任何解释都会非常有用!感谢

1 个答案:

答案 0 :(得分:0)

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

  

"较新版本的Android可提供其他主题   应用程序,您可能希望在运行这些应用程序时使用它们   平台,同时仍与旧版本兼容。您可以   通过使用资源选择的自定义主题实现此目的   根据平台版本"

在不同的父主题之间切换

所以你应该做的是有两个styles.xml副本,一个将放在res / values / styles.xml中 - 为了向后兼容android版本< 3.0,默认主题:

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

然后在res / values-v11下为android版本&gt; = 3.0添加另一个styles.xml与Holo主题:

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

通过这种方式,您可以获得并使用Holo主题,这是整个Android市场的88%。