如何在CollapsingToolbarLayout中居中标题,后面的图标可见

时间:2018-05-17 09:39:55

标签: android material-design

如图所示。由于左上角的后退按钮,标题略微偏离中心。

如何将标题居中? enter image description here

1 个答案:

答案 0 :(得分:0)

我在CollapsingToolbarLayout中搜索源代码,最后找到一个技巧,即使后退按钮可见,也可以使标题居中。

如何 1.将此类添加到您的代码中:

class CollapseLayoutCenteredTitleToolbar @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = android.support.v7.appcompat.R.attr.toolbarStyle) : Toolbar(context, attrs, defStyleAttr) {
override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
    super.onLayout(changed, l, t, r, b)
    (0 until childCount).forEach {
        val view = getChildAt(it)
        // 除了CollapsingToolbarLayout,没有谁会加一个纯的View进来
        if (view.javaClass == View::class.java) {
            view.left = 0
        }
    }
}

}

  1. 将您的布局更改为以下内容:

      

            <demo.CollapseLayoutCenteredTitleToolbar
                android:id="@+id/main_toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                />
        </android.support.design.widget.CollapsingToolbarLayout>
    
  2. 享受 centered