是否可以完全自定义默认的ActionBar样式?

时间:2018-07-30 08:08:26

标签: android android-actionbar android-styles

在我的活动中,我使用默认的ActionBar

<style name="AppTheme" parent="Theme.AppCompat">getSupportActionBar()

如何自定义此ActionBar的样式?

  1. 更改ActionBar颜色和标题颜色
  2. 将标题居中对齐
  3. 向ActionBar添加更多顶部填充

对于颜色,我尝试了这两种样式,但它也更改了整个Activity的颜色,我只想更改ActionBar

<item name="colorPrimary"></item>
<item name="android:textColorPrimary"></item>

我也尝试过actionBarStyle,但是它不起作用

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="colorPrimary">@color/darkgray</item>
    <item name="colorPrimaryDark">@color/black</item>
    <item name="colorAccent">@color/gold</item>
    <item name="android:textColorPrimary">@color/gold</item>
    <item name="android:textColorSecondary">@color/darkgray</item>
    <item name="android:windowBackground">@color/black</item>
    <item name="android:colorBackground">@color/black</item>
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@color/gray</item>
    <item name="android:textColor">@color/black</item>
</style>

1 个答案:

答案 0 :(得分:1)

我建议您在布局中添加Toolbar并为活动使用Theme.AppCompat.NoActionBar主题:

布局:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/yourColor">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textColor="@color/yourColor"
        android:text="yourTitle" />

</android.support.v7.widget.Toolbar>

清单:

<activity
    android:name="yourActivity"
    android:theme="@style/Theme.AppCompat.NoActionBar" />