Android 如何使用Holo.Light主题,但让ActionBar在没有ICS的情况下使用Holo?

Android 如何使用Holo.Light主题,但让ActionBar在没有ICS的情况下使用Holo?,android,themes,android-3.0-honeycomb,android-actionbar,Android,Themes,Android 3.0 Honeycomb,Android Actionbar,我想有一个黑暗的操作栏,但有应用程序的其余部分使用全息。轻主题。我知道ICS/4.0中有一个Theme.Holo.Light.DarkActionBar主题,但我希望它也能在Honeycomb/3.0+中工作 目前,我使用的是黑暗全息主题,其余的组件使用的是ContextThemeWrapper。但这需要做很多工作,很容易导致错误 这可能吗?创建一个自定义样式,并将父样式设置为全息灯光主题,但将操作栏设置为普通全息 具有类似内容的xml文件应该可以完成这项工作(我的内存不足): @androi

我想有一个黑暗的操作栏,但有应用程序的其余部分使用全息。轻主题。我知道ICS/4.0中有一个Theme.Holo.Light.DarkActionBar主题,但我希望它也能在Honeycomb/3.0+中工作

目前,我使用的是黑暗全息主题,其余的组件使用的是ContextThemeWrapper。但这需要做很多工作,很容易导致错误


这可能吗?

创建一个自定义样式,并将父样式设置为全息灯光主题,但将操作栏设置为普通全息

具有类似内容的xml文件应该可以完成这项工作(我的内存不足):


@android:style/Widget.Holo.ActionBar
然后将AndroidManifest.xml中的appstyle0设置为样式,并且在所有活动中都是holo light主题,但操作栏样式是holo dark

编辑: 我检查了为什么我的第一个答案不起作用

<style name="Widget.Holo.Light.ActionBar" parent="Widget.Holo.ActionBar">
    <item name="android:titleTextStyle">@android:style/TextAppearance.Holo.Widget.ActionBar.Title</item>
    <item name="android:subtitleTextStyle">@android:style/TextAppearance.Holo.Widget.ActionBar.Subtitle</item>
    <item name="android:background">@android:drawable/ab_transparent_light_holo</item>
    <item name="android:backgroundStacked">@android:drawable/ab_stacked_transparent_light_holo</item>
    <item name="android:backgroundSplit">@android:drawable/ab_bottom_transparent_light_holo</item>
    <item name="android:homeAsUpIndicator">@android:drawable/ic_ab_back_holo_light</item>
    <item name="android:progressBarStyle">@android:style/Widget.Holo.Light.ProgressBar.Horizontal</item>
    <item name="android:indeterminateProgressStyle">@android:style/Widget.Holo.Light.ProgressBar</item>
</style>

@android:style/TextAppearance.Holo.Widget.ActionBar.Title
@android:style/TextAppearance.Holo.Widget.ActionBar.Subtitle
@android:drawable/ab_transparent_light_holo
@android:drawable/ab炣堆叠炣透明炱光潋holo
@android:drawable/ab_bottom_transparent_light_holo
@安卓:可拖动/ic_ab_背面_全息灯
@android:style/Widget.Holo.Light.ProgressBar.Horizontal
@android:style/Widget.Holo.Light.ProgressBar
动作栏在styles.xml中定义,其属性通常由主主题设置。 首先,BG是透明的,所以您应该使用“Widget.Holo.Light.ActionBar.Solid”作为父级。 然后,您必须将不同的项目逐一设置为黑暗主题。 以titleTextStyle为例:

<style name="TextAppearance.Holo.Widget.ActionBar.Title.Own"
       parent="TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">@android:color/primary_text_holo_dark</item>
    <item name="android:textColorHighlight">@android:color/highlighted_text_holo_dark</item>
    <item name="android:textColorHint">@android:color/hint_foreground_holo_dark</item>
    <item name="android:textColorLink">@android:color/holo_blue_light</item>
</style>

@安卓:彩色/原色\文字\全息\深色
@安卓:彩色/高亮显示\文字\全息\深色
@安卓:颜色/提示\前景\全息\深色
@安卓:彩色/全息蓝光
现在将此设置为

<item name="android:titleTextStyle">@android:style/TextAppearance.Holo.Widget.ActionBar.Title.Own</item>
@android:style/TextAppearance.Holo.Widget.ActionBar.Title.Own
对上面的xml属性执行如下操作

要查找所有相关属性,请在styles.xml和themes.xml中搜索参数。
很抱歉告诉你,但是我想没有简单的方法,根据我所看到的…

当我想在actionbar中放置自定义视图时,我遇到了类似的问题。我想要一个黑暗的动作条,而应用程序的其余部分仍然是光明的。更具体地说,我在动作栏中有旋转器

首先,你的主题应该扩展

<style name="MyTheme.Light" parent="android:Theme.Holo.Light.DarkActionBar">

接下来,在活动中,使用
getActionBar().getThemedContext()
作为扩展视图的上下文。在我的实例中,它是我传递给微调器阵列适配器的内容


非常适合我。

觉得很容易。。。100%有效

将下面的行添加到Assemblyinfo.cs

[assembly: Application(Theme = "@android:style/Theme.Material.Light.DarkActionBar")]

不适合我。例如:
@color/background\u color@style/CustomActionBarStyle 32dp
这给了我paddingLeft,但没有将深色全息主题应用到操作栏-它仍然是浅色主题。提到的可绘制内容不是公开的,你觉得如何?
[assembly: Application(Theme = "@android:style/Theme.Material.Light.DarkActionBar")]