1. 程式人生 > >Android Toolbar標題精準居中

Android Toolbar標題精準居中

通過CollapsingToolbarLayout的以下屬性可以設定標題摺疊和展開時title的樣式:

app:collapsedTitleGravity="center_horizontal" // 摺疊時title的對齊方式
app:collapsedTitleTextAppearance="@style/ToolbarCollapsedTitle" //摺疊時title文字的樣式
app:expandedTitleGravity="center_horizontal" //展開時title的對齊方式
app:expandedTitleTextAppearance="@style/ToolbarExpandedTitle" //展開時title文字的樣式

但是這樣有一個問題,細看Title的文字並沒有真正的居中,網上給出的辦法一般有兩個:

1、Toolbar新增一個子view

2、給Toolbar設定屬性
      app:contentInsetStart="0dp"

      app:contentInsetLeft="0dp"

但是這樣設定後發現還是沒有精確居中,檢視Toolbar樣式:

    <style name="Base.Widget.AppCompat.Toolbar" parent="android:Widget">
        <item name="titleTextAppearance">@style/TextAppearance.Widget.AppCompat.Toolbar.Title</item>
        <item name="subtitleTextAppearance">@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle</item>
        <item name="android:minHeight">?attr/actionBarSize</item>
        <item name="titleMargin">4dp</item>
        <item name="maxButtonHeight">@dimen/abc_action_bar_default_height_material</item>
        <item name="buttonGravity">top</item>
        <item name="collapseIcon">?attr/homeAsUpIndicator</item>
        <item name="collapseContentDescription">@string/abc_toolbar_collapse_description</item>
        <item name="contentInsetStart">16dp</item>
        <item name="contentInsetStartWithNavigation">@dimen/abc_action_bar_content_inset_with_nav</item>
        <item name="android:paddingLeft">@dimen/abc_action_bar_default_padding_start_material</item>
        <item name="android:paddingRight">@dimen/abc_action_bar_default_padding_end_material</item>
    </style>

發現有個titleMargin,再增加屬性app:titleMargin="0dp",發現這樣才真正的居中。