【问题标题】:Why are android themes not backward compatible?为什么android主题不向后兼容?
【发布时间】:2014-09-23 04:36:32
【问题描述】:

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

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

对此的任何解释都会非常有帮助!谢谢

【问题讨论】:

    标签: android themes compatibility


    【解决方案1】:

    发件人:http://developer.android.com/guide/topics/ui/themes.html

    “较新版本的 Android 有额外的主题可供 应用程序,您可能希望在这些应用程序上运行时使用它们 平台,同时仍与旧版本兼容。你可以 通过使用资源选择的自定义主题来实现这一点 根据平台版本切换不同的父主题"

    所以你应该做的是有两份styles.xml,一份放在res/values/styles.xml中——为了向后兼容android版本

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

    然后将另一个 styles.xml 放在 res/values-v11 下,适用于具有 Holo 主题的 Android 版本 >= 3.0:

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

    通过这种方式,您可以在可能的情况下获得并使用 Holo 主题,该主题目前占整个 android 市场的 88%。

    【讨论】:

    • 是的,我明白这一点,但有没有办法在
    • 我刚看到这篇文章。清除了我的疑问stackoverflow.com/questions/13821395/… 无论如何感谢您的帮助:)
    • 使用自定义主题,您可以随心所欲。你没有理由不能拥有这样的全息主题。这就是 HoloEverywhere 库的做法。您提供的链接已损坏,但这里是 HoloEverywhere 的链接:github.com/Prototik/HoloEverywhere
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 2017-10-02
    • 2012-12-19
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多