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

Is is possible completely custom default ActionBar style?

在我的 activity 中,我使用默认的 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>

我建议您在布局中包含 Toolbar 并为您的 Activity 使用 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" />