【问题标题】:Changing actionBar theme to Holo.Light?将 actionBar 主题更改为 Holo.Light?
【发布时间】:2013-03-12 18:36:19
【问题描述】:

我需要一些帮助来更改操作栏主题。目前它的全息黑暗,但我希望它是全息光。我已经设置了

<style name="ActionBar" parent="android:Theme.Holo.Light">
    <item name="android:actionBarStyle">
        @android:style/Widget.Holo.ActionBar
    </item>        
</style>

在/样式中。但后来我需要在android清单文件中的某个地方设置它,但我不知道在哪里。因为操作栏是更大活动的一部分,并且活动具有全息光主题,而不是操作栏。有人吗?

【问题讨论】:

    标签: java android xml themes


    【解决方案1】:

    关于设置主题的重要知识是,默认情况下,当您创建项目时,会在 Values 下创建 3 个文件夹:valuesvalues-v11values-v14

    默认情况下,第一件事是打开values文件夹下的styles.xml。那就是我们出错的地方。请看,因为值文件有 3 个文件夹,Android 系统将尝试加载在适合当前系统设置的文件夹中定义的样式。也就是说,如果您在 Nexus Running API 级别 17 上运行应用程序,加载的样式将来自 values-v14NOT 来自 values

    因此,您必须编辑每个文件夹下的每个 styles.xml 文件,以确保无论 API 级别如何都能正确加载主题。

    values-v14styles.xml 应如下所示:

    <resources>
    <!--
        Base application theme for API 14+. This theme completely replaces
        AppBaseTheme from BOTH res/values/styles.xml and
        res/values-v11/styles.xml on API 14+ devices.
    -->
    <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
        <!-- API 14 theme customizations can go here. -->
    </style>
    </resources>
    

    我希望这会有所帮助。

    【讨论】:

    • 简单清晰而优雅的答案..我正在寻找这个大约一天,你的回答帮助了我。感谢您的澄清。
    【解决方案2】:

    在您的清单文件中,如果您希望主题仅应用于一个活动,请在您的 &lt;activity&gt; 标记内添加属性 android:theme="@style/ActionBar"

    <activity 
        android:name="YourActivityName"
        android:theme="@style/ActionBar"
    />
    

    如果您希望将主题应用于应用程序中的所有活动,请在 &lt;application&gt; 标记内添加属性

    <application 
        android:label="YourAppLabel"
        android:theme="@style/ActionBar" 
    />
    

    【讨论】:

      猜你喜欢
      • 2015-03-13
      • 1970-01-01
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多