Skip to content

Android Theme and style Toolbar

Roman edited this page Mar 21, 2019 · 3 revisions

Стандартный виджет Toolbar:

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:navigationIcon="@drawable/ic_arrow_back"
/>

Основные атрибуты (используемые в androidx.appcompat.widget.Toolbar):

  • android:background
  • titleTextAppearance
  • titleTextColor
  • subtitleTextAppearance
  • subtitleTextColor

Cтиль по умолчанию берётся из атрибута темы toolbarStyle. Для темы Theme.MaterialComponents.NoActionBar выставлен стиль по умолчанию:

<item name="toolbarStyle">@style/Widget.MaterialComponents.Toolbar</item>

Стандартные стили:

  • Widget.MaterialComponents.Toolbar
<style name="Widget.MaterialComponents.Toolbar" parent="Widget.AppCompat.Toolbar">
    <item name="titleTextAppearance">?attr/textAppearanceHeadline6</item>
    <item name="titleTextColor">?android:attr/textColorPrimary</item>
    <item name="subtitleTextAppearance">?attr/textAppearanceSubtitle1</item>
    <item name="subtitleTextColor">?android:attr/textColorSecondary</item>
</style>

!!! Обратить внимание, используется textAppearanceHeadline6 и textAppearanceSubtitle1

  • Widget.MaterialComponents.Toolbar.Primary
<style name="Widget.MaterialComponents.Toolbar.Primary">
    <item name="android:background">?attr/colorPrimary</item>
    <item name="titleTextColor">?attr/colorOnPrimary</item>
    <item name="subtitleTextColor">?attr/colorOnPrimaryEmphasisMedium</item>
</style>
  • Widget.MaterialComponents.Toolbar.Surface
<style name="Widget.MaterialComponents.Toolbar.Surface">
    <item name="android:background">?attr/colorSurface</item>
    <item name="titleTextColor">?attr/colorOnSurfaceEmphasisHighType</item>
    <item name="subtitleTextColor">?attr/colorOnSurfaceEmphasisMedium</item>
</style>

Отличаются тем, из каких атрибутов берутся цвета для заголовков и фона.

Clone this wiki locally