【问题标题】:Trying to use holo theme in Android not working尝试在 Android 中使用全息主题不起作用
【发布时间】:2012-06-21 01:08:38
【问题描述】:

我一直在尝试在 Android 中设置一个全息主题,但我无法让它识别它。有什么想法吗?

发布的是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" android:theme="@android:style/Theme.Holo">
        <activity
            android:name=".TestActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

即使我将 minSdkVersion 更改为 11,它也会在 @android:style/Theme.Holo 下显示红线。有什么想法吗?

更新:

我将&lt;uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/&gt; 行更改为&lt;uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/&gt;,但仍然遇到同样的错误。

更新 2:

这最终是在清单中正确指定了我的目标 api,但在项目属性中未正确指定。很奇怪,但现在也一样。

【问题讨论】:

    标签: java android android-layout android-manifest


    【解决方案1】:

    Eclipse 给您一个错误,因为 SDK 版本 7-10 不知道 Theme.Holo 是什么。您需要为两个平台提供单独的样式,以确保在运行时找到正确的样式。

    1. 在您的 res/values/styles.xml 文件中,创建以下样式:

      <?xml version="1.0" encoding="utf-8"?>
      <resources>
          <style name="Theme.MyTheme" parent="@android:style/Theme.Black" />
      </resources>
      
    2. 在您的 res/values-v11/styles.xml 文件中,创建以下样式:

      <?xml version="1.0" encoding="utf-8"?>
      <resources>
          <style name="Theme.MyTheme" parent="@android:style/Theme.Holo" />
      </resources>       
      
    3. 在您的 AndroidManifest.xml 文件中,使用以下行作为应用程序的主题:

      android:theme="@style/Theme.MyTheme"
      

    【讨论】:

      【解决方案2】:

      您正在尝试将 Holo 主题用于低于 Android 4.0 的 API,这就是为什么您可以得到红线:

      1. 使用HoloEverywhere 项目
      2. 从 ICS 源并创建您自己的自定义主题/样式 https://github.com/android/platform_frameworks_base/tree/master/core/res
      3. 您也可以尝试使用 Android Api 7 到 10 的自定义主题 以及 Api 11 及更高版本的全息主题,请参阅@Alex Lockwood 的 回答。

      【讨论】:

      • 你为什么会建议#1?!您基本上是在鼓励 OP 阻止 90% 的 Android 用户使用他的应用。
      • @AlexLockwood 是的,第一个建议是不推荐的。就像你说的 90% 的 Android 用户将被禁止使用此应用
      • 如果不推荐...那你为什么推荐它?
      • @AlexLockwood,这也是一个解决方案,但是一个 hacky 方式!我已经编辑了我的答案
      • 没有什么“hacky”。这纯粹是错误。任何开发人员都不应该永远minSdkVersion 增加为一种简单的解决方法,尤其是在解决方案如此微不足道的情况下。有一天,初学者可能会看到这个答案并自言自语“嘿,那家伙很有名气,我会这样做!”,市场上还会有一个更蹩脚的 Android 应用程序是你的错第二天。好吧,也许这有点苛刻,哈哈……我只是认为,如果你知道一开始是错误的,最好不要提出最后的解决方案。我喜欢你的#2 解决方案。 :)
      【解决方案3】:

      需要在所有样式文件夹中更新 Holo 主题。检查 values 文件夹下的 values-sw600dp、values-sw720dp-land、values-v11 和 values-v14。 values-v14 上的主题覆盖了更高 API 上的所有其他主题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-04
        • 2021-10-09
        • 1970-01-01
        • 2014-01-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多