AppCompat Actionbar样式

Ber*_*ood 12 android android-appcompat actionbarsherlock android-actionbar

我目前正在尝试使用AppCompat而不是ActionbarSherlock.在Android 4+设备上,我没有遇到任何问题,因为使用了正常的Actionbar和Holo主题.

ICS行动栏

然而,在较低的Android版本上,使用Theme.AppCompat.Light时会出现这种奇怪的外观.

标准AppCompat Actionbar

Actionbar为白色,下方有蓝线.

我能够通过使用Android Asset Studio中的Android Action Bar Style Generator来生成一个自定义主题,其中包含一个实心的Actionbar而不是透明的ActionB.

AppCompat与Style Generator的自定义绘图

将它与使用ActionbarSherlock时获得的Actionbar进行比较时,它仍然有点难看.

ActionbarSherlock

AppCompat Actionbar在它自身与活动内容之间有一条非常清晰的黑线,而ICS的Actionbar或ActionbarSherlock的一条动作条从Actionbar到布局的转换更为柔和.

我如何设计Actionbar的样式,看起来真的像Android 4+上的那个?

har*_*ore 17

您必须使用要放在背景上的图像创建自己的样式.在style.xml中,您应该创建类似于此的东西:

价值观/ styles.xml

    <style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat.Light">
        <item name="actionBarStyle">@style/ActionBarTabStyle.MyAppTheme</item>
    </style>

    <style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
        <item name="background">@drawable/your_background_image</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

值-V14/styles.xml

    <style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:actionBarStyle">@style/ActionBarTabStyle.MyAppTheme</item>
    </style>

    <style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
        <item name="android:background">@drawable/your_background_image</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

你可以使用这个9补丁图像:

9补丁图像