gpt4 book ai didi

android - AppCompat - 设置操作栏样式时出错

转载 作者:行者123 更新时间:2023-11-29 21:29:40 27 4
gpt4 key购买 nike

我正在使用 appcompat 库来实现操作栏。使用自定义样式时会出现错误 android:actionBarStyle 需要 API 级别 11(当前最小值为 10)。我希望该应用程序与 android 2.3 兼容。我正在使用谷歌示例代码。

themes.xml
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>

<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/actionbar_background</item>

<!-- Support library compatibility -->
<item name="background">@drawable/actionbar_background</item>
</style>

最佳答案

AppCompat 与 2.3 兼容,但您需要定义 2 种样式(如上所示):一种用于 native 操作栏实现 (android:actionBarStyle),一种用于兼容性实现 (actionBarStyle)。

如果您在 values/styles.xml 中定义了这两种样式,您将得到编译错误 - 因为 values/styles.xml 是为所有 api 版本编译的,而 2.3 不知道 android:actionBarStyle。

因此您可以复制您的样式。有一个 values/styles.xml 和一个 values-v14/styles.xml

在 api 14 及更高版本的设备上运行时,values-v14/styles.xml 中的样式将覆盖 values/styles.xml 中的所有样式。

或者您可以将所有样式保留在一个 values/styles.xml 中,但是在出现错误的属性上,将 tools:targetApi="14"添加到标记中,告诉编译器忽略它在非 api 14 设备上。

例如

<item name="android:actionBarStyle" tools:targetApi="14">@style/MyActionBar</item>

关于android - AppCompat - 设置操作栏样式时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19774753/

27 4 0