[英]AppCompat Actionbar styling
我目前正在尝试使用AppCompat而不是ActionbarSherlock。 在Android 4+设备上,我没有遇到任何问题,因为使用了正常的Actionbar和Holo主题。
然而,在较低的Android版本上,使用Theme.AppCompat.Light时会出现这种奇怪的外观。
Actionbar为白色,下方有蓝线。
我能够通过使用Android Asset Studio中的Android Action Bar Style Generator来生成一个自定义主题,其中包含一个实心的Actionbar而不是透明的ActionB。
将它与使用ActionbarSherlock时获得的Actionbar进行比较时,它仍然有点难看。
AppCompat Actionbar在它自身与活动内容之间有一条非常清晰的黑线,而ICS的Actionbar或ActionbarSherlock的一条动作条从Actionbar到布局的转换更为柔和。
我如何设计Actionbar的样式,看起来真的像Android 4+上的那个?
您必须使用要放在背景上的图像创建自己的样式。 在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>
值-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>
你可以使用这个9补丁图像:
我用这个代码:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="actionBarStyle">@style/ActionBarTheme</item>
</style>
<style name="ActionBarTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
<item name="background">@color/red_action_bar</item>
</style>
</resources>
我希望这段代码有很大的帮助。
您必须覆盖操作栏的主题
要在AppCompatActivity中显示自定义图标和颜色,我们可以粘贴此代码:
价值观/ styles.xml
<resources>
<style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat">
<item name="actionBarStyle">@style/ActionBar.Solid.MyAppTheme</item>
<item name="icon">@drawable/ic_launcher</item>
</style>
<style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
<item name="background">@color/white</item>
</style>
值-V14 / styles.xml
<resources>
<style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/ActionBar.Solid.MyAppTheme</item>
<item name="icon">@drawable/ic_launcher</item>
</style>
<style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
<item name="android:background">@color/app_titile_bar_color</item>
</style>
您也可以使用@ drawable / your_pic.png中的自定义背景图片
要显示应用图标和文字,您还可以将其粘贴到您的活动中。
// set action Bar icon & Text
ActionBar mActionBar = getSupportActionBar();
mActionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE
| ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.