OutlinedBox TextInputLayout и центр тяжести?

Как добиться центрированного нового стиля OutlinedBox с помощью TextInputLayout?

Текущее поведение:

слева и в центре

<android.support.design.widget.TextInputLayout
    android:id="@+id/textInputLayout2"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="left"
    >
    <android.support.design.widget.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:hint="hint"
        />
</android.support.design.widget.TextInputLayout>

<android.support.design.widget.TextInputLayout
    android:id="@+id/textInputLayout"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    >
    <android.support.design.widget.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:hint="hint2"
        />
</android.support.design.widget.TextInputLayout>

Я использую com.android.support:design:28.0.0.

Любые идеи по реализации нормально выглядящего TextInputEditText по центру?


comment
Используйте подсказку на TextInputLayout вместо TextInputEditText.   -  person Jeel Vankhede    schedule 21.11.2018
comment
@JeelVankhede не работает, выглядит так же   -  person Kikju    schedule 22.11.2018


Ответы (2)


В библиотеке компонентов материалов, начиная с версии 1.2.0-alpha02, определяется положение свернутой метки через текст редактирования gravity.

Используя что-то вроде:

<com.google.android.material.textfield.TextInputLayout
    android:hint="@string/...."
    ...>

    <com.google.android.material.textfield.TextInputEditText
        android:gravity="center"
        ../>

</com.google.android.material.textfield.TextInputLayout>

Результат:

введите описание изображения здесь

person Gabriele Mariotti    schedule 21.11.2019
comment
Это не работает, когда я устанавливаю app:hintEnabled="false" или app:boxBackgroundMode="none" на TextInputLayout - person Kuvonchbek Yakubov; 31.08.2020
comment
@KuvonchbekYakubov Это совершенно ясно. Использование app:hintEnabled="false"плавающей метки макета отключено, а это означает, что нет свернутой метки. При использовании app:boxBackgroundMode="none" область ввода текста не отображается как прямоугольник. Это означает, что нет выделенной рамки. - person Gabriele Mariotti; 31.08.2020

Текст по центру внутри выделенного текстового поля на самом деле не тот случай, который мы поддерживаем. На самом деле это вообще не упоминается в руководстве (https://material.io/design/components/text-fields.html)

Это похоже на ошибку, когда текст метки центрируется при применении центра тяжести. Самый простой способ исправить это — отправить нам запрос с исправлением на https://github.com/material-components/material-components-android. Или вы можете сообщить об ошибке здесь: https://issuetracker.google.com/issues/new?component=439535.

person Cameron Ketcham    schedule 30.11.2018