代码之家  ›  专栏  ›  技术社区  ›  CL So

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

  •  0
  • CL So  · 技术社区  · 6 年前

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

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

    我如何定制这个动作条的样式?

    1. 更改操作栏颜色和标题颜色
    2. 标题居中对齐
    3. 向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 回复  |  直到 6 年前
        1
  •  1
  •   Bubu    6 年前

    我建议你把 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" />