ActionBarSherlock - actionbar custom background with divider

后端 未结 4 498
轮回少年
轮回少年 2020-12-04 10:30

I\'m implementing ActionBarsherlock and I want to change the actionbar background.

I override the properties but the blue divider dissapear. How can I use custom ba

相关标签:
4条回答
  • 2020-12-04 10:50

    Just an update on the answer provided by DanielGrech. It's also possible to use your own custom graphic at the bottom of the actionbar. Like this:

        <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <!-- Bottom Line with custom graphic instead of a solid color-->
        <item android:drawable="@drawable/bar">
              <shape android:shape="rectangle"/>
        </item>
    
        <!-- Color of your action bar -->
        <item android:bottom="2dip">
            <shape android:shape="rectangle">
                <solid android:color="@color/action_bar_color" />
            </shape>
        </item>
    </layer-list>
    
    0 讨论(0)
  • 2020-12-04 10:52

    The blue divider is the background by default. It's a 9-patch drawable which will ensure the line always appears at the bottom of the action bar regardless of its height.

    For your situation I would copy the default background .pngs from Android and then modify them so that the expandable section of the 9-patch is your target background color. This will fill the action bar with your desired color while maintaining the blue border at the bottom.

    0 讨论(0)
  • 2020-12-04 10:58

    For anyone who (like me) doesn't enjoy playing around with 9-patch images, you can get the divider at the bottom of the action bar using an xml drawable:

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <!-- Bottom Line -->
        <item>
            <shape android:shape="rectangle">
                <solid android:color="@color/action_bar_line_color" />
            </shape>
        </item>
    
        <!-- Color of your action bar -->
        <item android:bottom="2dip">
            <shape android:shape="rectangle">
                <solid android:color="@color/action_bar_color" />
            </shape>
        </item>
    </layer-list>
    

    Save this as drawable/action_bar_background.xml, Then apply it in your theme:

    <style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
        <item name="android:background">@drawable/action_bar_background</item>
        <item name="background">@drawable/action_bar_background</item>
    </style>
    
    0 讨论(0)
  • 2020-12-04 11:08

    http://jgilfelt.github.io/android-actionbarstylegenerator/

    This project can be used to generate ActionBar style you need.

    0 讨论(0)
提交回复
热议问题