【问题标题】:Android AppCompat revision 21 force Holo themeAndroid AppCompat 修订版 21 强制 Holo 主题
【发布时间】:2014-10-19 22:55:15
【问题描述】:

在我的项目中,我使用的是 appcompat-v7(修订版 20),而我的项目针对的是 android API 级别 19(KitKat),因此我可以使用 Holo 主题。我不小心将“Android 支持库”更新为修订版 21,因此我不得不将清单中的目标更改为 API 级别 21 (Lollipop)。

因此,我的应用程序的默认主题更改为 Material(例如,复选框为绿色)。有没有办法强制再次使用 Holo 主题?

Manifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="my.package"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />


    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        --- activities & receivers ---
    </application>

</manifest>

样式.xml:

<resources>

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">

    </style>


    <style name="AppTheme" parent="AppBaseTheme">
    </style>

</resources>

【问题讨论】:

  • 理想情况下,有办法做到这一点。我的猜测是不会有。如果您使用的是 Android Studio,您可以将 appcompat-v7compile 语句更改为更低的值(例如,compile 'com.android.support:appcompat-v7:19.1.0')。如果您使用的是 Eclipse,除非有人发布了常规库项目的旧版本,否则您可能需要尝试使用 my AAR to Android library project converter 来获取 Android Studio 的旧 AAR 并从 Eclipse 中获取可用的东西。
  • 另外,FWIW,请密切关注this issue,假设您不是提交它的人。 :-)
  • 感谢@CommonsWare!不幸的是我使用的是eclipse,所以我会尝试使用你的AAR转换器来恢复以前版本的支持库。
  • 附带问题:如何使用 Material Design 获得绿色复选框?我的在 21 岁之前的设备上是黑色的,在 21 岁以上的设备上是自定义颜色的。
  • 我不知道,我有 Theme.AppCompat.Light.DarkActionBar 主题,也许那里有(或曾经,库已更新)一个设置。

标签: android android-support-library android-theme


【解决方案1】:

我终于通过下载“Android 支持存储库”并使用@CommonsWare 转换器将 .aar 项目转换为库来解决了这个问题。

【讨论】:

  • 您可能和我一样使用 Eclipse,所以我最近开始手动将 AAR 转换为 Eclipse 库项目并在 GitHub 上维护它们(github.com/dandar3/android-support-v7-appcompat,请参阅发布)供我自己和其他人使用使用(如果被 Git/eGit 学习曲线吓到了,你可以使用 SVN)。回到您的问题,如果您想要 appcompat v21 中的特定内容但又不想以 API 21 为目标,您可以删除 res\values-21 并更改为目标 API 19。
  • 是的,我试过这个解决方案,但没那么简单。例如,如果您查看 /res/values/themes_base.xml,您可以看到所有样式都已修改为支持 Material design。因此,如果您切换回 API 级别 19,即使您删除 values-21,您也会收到一堆错误和缺少对属性的依赖关系!
  • 你说的很对 - 抱歉,我的建议是基于 v21.0.0-rc1(使用修改后的版本来处理 API 19),但我发现在这之间发生了很多变化释放。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-30
  • 2016-05-29
  • 1970-01-01
相关资源
最近更新 更多