【问题标题】:ActionBar Sherlock styling issueActionBar Sherlock 样式问题
【发布时间】:2025-12-15 03:50:02
【问题描述】:

我正在开发一个 android 上的新应用程序。我已经在我的应用程序中实现了 actionbarsherlock。 这是我的屏幕截图。

我想改变屏幕的背景,所以我创建了一个样式。

<style name="Theme.MyTheme" parent="Theme.Sherlock.ForceOverflow">
<item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
    </style>

<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
<item name="android:background">#ff000000</item>
<item name="background">#ffff0000</item>
   </style>

使用我的主题后,蓝色边框不见了。 这是我使用主题后得到的画面。。

请各位朋友帮我找解决办法。

【问题讨论】:

    标签: android android-actionbar actionbarsherlock


    【解决方案1】:

    这是因为蓝色边框是操作栏背景的一部分。当您将其更改为红色时,它就消失了。

    您必须创建自己的带有底部边框的可绘制对象并覆盖操作栏的背景。

    【讨论】:

      【解决方案2】:

      我以前没有任何使用 Sherlock 的经验,但我看到你的风格有一个背景属性:

      <item name="android:background">#ff000000</item>
      

      所以,我相信您可以制作一个带有红色和底部边框的自定义背景,例如 shape 或 9 个补丁图像。

      然后你可以这样设置:

      <item name="android:background">@drawable/my_cool_background</item>
      

      【讨论】:

        【解决方案3】:

        那个蓝线边框是背景可绘制对象的一部分。请参阅文件 res/drawable-hdpi/abs__cab_background_top_holo_dark.9.png。 因此,如果您希望在您的操作栏中有一个带有自定义背景的底线边框,您需要创建一个带有该边框的 9-patch 可绘制对象。

        【讨论】:

          【解决方案4】:

          在文件布局/abs__action_bar_tab_bar_view.xml:

          <?xml version="1.0" encoding="utf-8"?>
          <com.actionbarsherlock.internal.widget.IcsLinearLayout
              xmlns:android="http://schemas.android.com/apk/res/android"
             android:background="@drawable/bq_up_bar"
          />
          <!--   style="?attr/actionBarTabBarStyle"  -->
          

          【讨论】: