如何在操作栏中设置底部边框?

4
如何绘制一个像这样的底部边框的操作栏?

enter image description here

我尝试使用边距:
<style name="MyActionBar"
        parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:titleTextStyle">@style/TitleTextStyle</item>
        <item name="android:background">#088A29</item>
        <item name="android:backgroundStacked">#088A29</item>
        <item name="android:backgroundSplit">#0B3B0B</item>
        <item name="android:layout_marginBottom">5dp</item>

但是边距是白色的,我不明白如何改变颜色

谢谢!

2个回答

14

对我来说,以下解决方案完美且顺畅地运行。

<style name="MyActionBar"
    parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
    <item name="android:titleTextStyle">@style/TitleTextStyle</item>
    <item name="android:background">@drawable/custom_background_bar</item>
    <item name="android:layout_marginBottom">5dp</item>
当然,我已经建立了自定义背景栏并将其保存到drawable文件夹中。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item>
    <shape android:shape="rectangle" >
      <solid android:color="#ffff0000" />
    </shape>
  </item>
  <item android:top="-3dp" android:right="-3dp" android:left="-3dp">
    <shape>
      <solid android:color="@android:color/transparent" />
      <stroke
          android:width="2dp"
          android:color="#ff00ff00" />
    </shape>
  </item>
</layer-list>

您可以自由更改#ffff0000(背景栏颜色)和#ff00ff00 (底部边框颜色)的值,以您喜欢的值为准。

您还可以更改边框的厚度和样式,或在图层列表中添加其他形状和元素。

您也可以再次将另一个drawable设置为背景,并根据需要给予阴影或透明度。

希望这可以帮到您。


2
使用上述技术,我也在标题下面得到了一个边框。如何避免? - Debjit
对我和其他7个人来说,它运行良好。您在哪些设备/模拟器上看到边框?您是否设置了负填充和/或检查您所看到的边框是否是由于其他代码引起的? - Daniele D.
标题下方的边框是由于我正在使用作为操作栏背景的可绘制对象引起的。设备上没有模拟器。 - Debjit
很好的答案。但android:layout_marginBottom不是必需的。 - Mr T

3

Play Newsstand使用带有小阴影的自定义9-patch作为其ActionBar背景。

但通常情况下,可以通过在主题中应用Drawable并使用windowContentOverlay属性来更改ActionBar下方的阴影。

以下是一个示例:

<style name="Your.Theme" parent="@android:style/Theme.Holo">
    <item name="android:windowContentOverlay">@drawable/your_drawable</item>
</style>

以下是Play Newsstand所使用的9-patch图案: 另外,您还可以使用Action Bar Style Generator自动生成适用于您的ActionBar背景Drawable

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接