Android 标题周围的操作栏背景
Android actionbar background around title
Android Studio 1.1.0。 SDK 22 Installed&Compiled,SDK 17 Target(我想这不相关,因为 IDE 中的预览也会出现问题)。
我开始玩 Holo 主题操作栏样式,运行 遇到一个问题,涉及背景颜色。这是我的 styles.xml:
<resources>
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:background">#ff0d3200</item>
<item name="android:actionBarStyle">@style/BarTheme</item>
</style>
<style name="BarTheme" parent="android:Widget.Holo.ActionBar">
<item name="android:background">#443322</item>
</style>
</resources>
这是输出。我希望应用程序标题的背景颜色与操作栏的背景颜色相同。正如我所说,它在预览中是一样的,所以我不认为这是因为我的 phone(SDK17) 或模拟器。溢出按钮的行为方式相同,只是在本例中没有。
我尝试将 BarTheme 中的 android:titleTextStyle 设置为这种样式:
<style name="TitleTheme" parent="android:TextAppearance.Holo">
<item name="android:background">#443322</item>
</style>
但这并没有改变任何事情。我该怎么做才能克服这个问题?
尝试,
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">value</item>
<item name="android:titleTextStyle">@style/TitleColor</item>
</style>
<style name="TitleColor" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">value</item>
</style>
由于 David 的意见,我自己解决了我的问题。我必须在 AppTheme 中设置 windowBackground
,而不是 background
。我不确定确切的区别是什么,但它可以正常工作。切记不要更改 BarTheme 中的属性,因为它不适用于 windowBackground
。因此正确的 styles.xml
文件是:
<resources>
<color name="bcColor">#ff0d3200</color>
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:windowBackground">@color/bcColor</item>
<item name="android:actionBarStyle">@style/BarTheme</item>
</style>
<style name="BarTheme" parent="android:Widget.Holo.ActionBar">
<item name="android:background">#443322</item>
</style>
</resources>
请注意,在这种情况下,颜色必须定义为资源,不能硬编码。干净的方法是在值文件夹中创建 colors.xml 并在那里定义所有颜色。
Android Studio 1.1.0。 SDK 22 Installed&Compiled,SDK 17 Target(我想这不相关,因为 IDE 中的预览也会出现问题)。
我开始玩 Holo 主题操作栏样式,运行 遇到一个问题,涉及背景颜色。这是我的 styles.xml:
<resources>
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:background">#ff0d3200</item>
<item name="android:actionBarStyle">@style/BarTheme</item>
</style>
<style name="BarTheme" parent="android:Widget.Holo.ActionBar">
<item name="android:background">#443322</item>
</style>
</resources>
这是输出。我希望应用程序标题的背景颜色与操作栏的背景颜色相同。正如我所说,它在预览中是一样的,所以我不认为这是因为我的 phone(SDK17) 或模拟器。溢出按钮的行为方式相同,只是在本例中没有。
我尝试将 BarTheme 中的 android:titleTextStyle 设置为这种样式:
<style name="TitleTheme" parent="android:TextAppearance.Holo">
<item name="android:background">#443322</item>
</style>
但这并没有改变任何事情。我该怎么做才能克服这个问题?
尝试,
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">value</item>
<item name="android:titleTextStyle">@style/TitleColor</item>
</style>
<style name="TitleColor" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">value</item>
</style>
由于 David 的意见,我自己解决了我的问题。我必须在 AppTheme 中设置 windowBackground
,而不是 background
。我不确定确切的区别是什么,但它可以正常工作。切记不要更改 BarTheme 中的属性,因为它不适用于 windowBackground
。因此正确的 styles.xml
文件是:
<resources>
<color name="bcColor">#ff0d3200</color>
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:windowBackground">@color/bcColor</item>
<item name="android:actionBarStyle">@style/BarTheme</item>
</style>
<style name="BarTheme" parent="android:Widget.Holo.ActionBar">
<item name="android:background">#443322</item>
</style>
</resources>
请注意,在这种情况下,颜色必须定义为资源,不能硬编码。干净的方法是在值文件夹中创建 colors.xml 并在那里定义所有颜色。