Как центрировать заголовок в CollapsingToolbarLayout с видимым значком «Назад» - PullRequest
0 голосов
/ 17 мая 2018

Как видно на картинке. Заголовок немного смещен по центру из-за кнопки «Назад» в верхнем левом углу.

Как я могу центрировать заголовок? enter image description here

1 Ответ

0 голосов
/ 17 мая 2018

Я копаюсь в исходном коде в 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
        }
    }
}

}

Измените свой макет на что-то вроде этого:

        <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>

Наслаждайтесь centered

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...