【问题标题】:custom style action bar not working in android 4自定义样式操作栏在 android 4 中不起作用
【发布时间】:2013-09-10 19:01:42
【问题描述】:

为了自定义我的操作栏,我在 xml 中使用以下代码:

<style name="CustomActionbarTheme" parent="@style/Theme.AppCompat.Light">
    <item name="actionBarTabStyle">@style/customTab</item>
    <item name="actionBarStyle">@style/MyActionBar</item>
</style>

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

<style name="customTab" parent="@style/Widget.AppCompat.ActionBar.TabView">
    <item name="android:background">@drawable/tab_bg_selector</item>
</style>

我使用 api 级别 10 没有问题,但是当我在更高的 api 设备上运行我的代码时,操作栏处于其默认主题中。我在我的项目中使用支持库 v7。

【问题讨论】:

    标签: android styles android-actionbar android-support-library


    【解决方案1】:

    更新:从 AppCompat version 21 开始,所有 API 级别现在都使用不带前缀的样式名称,因此不再需要添加 android: 命名空间属性。

    现已过时:如果您使用支持库 v7 ActionBar,您需要声明您的自定义样式两次,一次没有 android: 前缀(对于 = v11支持 - 你需要添加这个)根据Styling the Action Bar guide

    【讨论】:

    • 当我添加 android: 我得到错误因为我的 min sdk 是 8 我该怎么办?
    • @MohamadGhafourian - 是 Lint 错误还是编译错误?如果这是一个 Lint 错误,您可以忽略它(系统不知道的属性不会伤害任何东西)或将 android: 版本移动到您的 styles.xml 文件的 values-v11 版本。如果是编译错误,那是因为你的 targetSdkVersion 低于 v11,所以你应该按照 Supporting Different Devices guide 将它增加到你测试过的最新版本
    • 感谢您指路。我想了一个更简单的方法。使用 'tools:targetApi="11"' 将修复错误。
    • 呜呜呜!谢谢!我一直在努力解决这个问题。
    • @ianhanniballake 链接已损坏 :( 如果可以请更新。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多