gpt4 book ai didi

Android actionbar 样式被后来的设备忽略,使用 appcompat v7

转载 作者:行者123 更新时间:2023-11-29 15:57:51 25 4
gpt4 key购买 nike

我正在使用 Action Bar 支持库 (appcompat v7),我的应用设置为最小 api 7,目标 21。

我有两个样式文件,一个是基础文件,另一个是针对设备 api 11+ 的文件。

在运行 KitKat 的设备上运行应用程序时,android:actionBarStyle 似乎被忽略,将操作栏样式保留为默认样式 (@style/Widget.AppCompat.ActionBar.Solid),而不是应用给定背景。

但是,如果我删除我的 v11 样式/将它们注释掉,KitKat 会监听基础 styles.xml 文件中设置的 actionBarStyle 属性并毫无问题地设置我的自定义背景。

那么我的问题是,v11 样式哪里出错了?

据我所知,根据 android 文档,您应该使用 android: 前缀为运行 11+ 的设备提供额外的样式,但这似乎不起作用对我来说。

精简后,这是我的/res/values/styles.xml 文件:

<style name="My.Theme" parent="@style/Theme.AppCompat">
<item name="actionBarStyle">@style/ActionBar.Solid</item>
</style>

<style name="ActionBar.Solid" parent="@style/Widget.AppCompat.ActionBar.Solid">
<item name="background">@drawable/ab_solid_</item>
</style>

这是我的/res/values-v11/styles.xml 文件:

<style name="My.Theme" parent="@style/Theme.AppCompat">
<item name="android:actionBarStyle">@style/ActionBar.Solid</item>
</style>

<style name="ActionBar.Solid" parent="@style/Widget.AppCompat.ActionBar.Solid">
<item name="android:background">@drawable/ab_solid_</item>
</style>

如您所见,两者之间的唯一区别是使用了 android: 前缀。

最佳答案

According to the official doc ,使用 AppCompat-v21,您可以删除所有 values-v14+ Action Bar 样式并仅使用一个主题声明,在 values 中:

<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
<!-- Set AppCompat’s actionBarStyle -->
<item name="actionBarStyle">@style/MyActionBarStyle</item>
</style>

关于Android actionbar 样式被后来的设备忽略,使用 appcompat v7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26810059/

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