gpt4 book ai didi

android - 在不丢失所有基本样式的情况下更改操作栏的背景

转载 作者:行者123 更新时间:2023-11-29 00:26:49 24 4
gpt4 key购买 nike

我是 Android 开发的新手,但我发现很难理解如何使用“res/values/styles.xml”中的 XML 来设置我的应用程序的样式。

在我发现的所有教程中,您似乎可以通过在标记中声明“parent”字段来继承大部分样式,然后更改您需要的内容。

然而,大多数以这种方式继承的样式都是非公开的,而且最近对 android 应用样式的限制使得非公开样式的继承几乎不可能。

我说“差不多”是因为我发现解决方案涉及大量来自 android SDK 中“Styles.xml”的复制粘贴。在 StackOverflow 上找到的一个明显示例是:

http://android-argentina.blogspot.it/2011/08/error-retrieving-parent-for-item.html

应用这些解决方案,我的简单 xml:

<style name="MyActionBar" parent="@style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">#FF0000</item>
</style>

变成了:

   <!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar">

<!--copied from Widget.Holo.Light.ActionBar.Solid.Inverse -->
<item name="android:titleTextStyle">
@android:style/TextAppearance.Holo.Widget.ActionBar.Title.Inverse
</item>
<item name="android:subtitleTextStyle">
@android:style/TextAppearance.Holo.Widget.ActionBar.Subtitle.Inverse
</item>
<item name="android:background">@android:drawable/ab_solid_dark_holo</item>
<item name="android:backgroundStacked">@android:drawable/ab_stacked_solid_dark_holo</item>
<item name="android:backgroundSplit">@android:drawable/ab_bottom_solid_inverse_holo</item>
<item name="android:divider">@android:drawable/list_divider_holo_dark</item>
<item name="android:progressBarStyle">@android:style/Widget.Holo.ProgressBar.Horizontal</item>
<item name="android:indeterminateProgressStyle">@android:style/Widget.Holo.ProgressBar</item>
<item name="android:progressBarPadding">32dip</item>
<item name="android:itemPadding">8dip</item>

<!-- custom items -->
<item name="android:background">#FF0000</item>
</style>

此时像“@android:drawable/ab_bottom_solid_inverse_holo”这样的资源是不公开的,其他人不能在项目中喜欢(是的,即使他们是“@android:drawable/SOMETHING”)并且会导致编译错误,所以这个在互联网上几乎无处不在的解决方案根本无法解决问题。

我只是想在不丢失所有基本样式的情况下更改操作栏的背景,必须有一种简单而聪明的方法来做到这一点。

所以请帮忙,一定有一些我没有考虑到的愚蠢的事情。

(抱歉我的英语不好)

最佳答案

试试这个:

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

<style name="Widget.Holo.ActionBar.XYZ" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:background">@color/aw_blue</item>
</style>

关于android - 在不丢失所有基本样式的情况下更改操作栏的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18725448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com