Разница между TextInputLayout и TextInputEditText
Необходимо знать, что на самом деле разница между TextInputEditText и TextInputLayout, когда мы должны использовать один из них.
Ответы
Ответ 1
Это разные макеты, которые дополняют друг друга.
- TextInputLayout расширяет LinearLayout
- TextInputEditText расширяет EditText
Они должны были использоваться вместе следующим образом:
<TextInputLayout>
<TextInputEditText/>
</TextInputLayout>
Все это в официальных документах:
TextInputLayout:
https://developer.android.com/reference/android/support/design/widget/TextInputLayout.html
Макет, который обертывает EditText (или потомок), чтобы показать плавающий метку, когда подсказка скрыта из-за ввода пользователем текста
TextInputEditText:
https://developer.android.com/reference/android/support/design/widget/TextInputEditText.html
Специальный подкласс класса EditText, предназначенный для использования в качестве дочернего элемента TextInputLayout.
Ответ 2
Полезное правило: TextInputLayout
следует обернуть TextInputEditText
вместо обычного EditText
.
Причина: TextInputEditText
является подклассом EditText
и предназначена для использования в качестве потомка TextInputLayout
.
Использование EditText
вместо TextInputEditText
выдаст нам предупреждение:
Добавленный EditText не является TextInputEditText. Пожалуйста, переключитесь на использование этого класса.
Например, если вы оберните EditText, в альбомном режиме вы получите большую коробку, но подсказка отсутствует.
Возможности Android TextInputLayout:
- Включение/отключение плавающих подсказок
- Включение/отключение анимации плавающей подсказки
- Отображение сообщений об ошибках
- Отображение счетчика символов
- Тревога пользователя, когда количество символов превышает его предел
- Настройка внешнего вида текста для всплывающей подсказки,
метка ошибки, счетчик символов
- Переключение видимости пароля
читать дальше здесь
Ответ 3
И TextInputLayout
и TextInputEditText
отличаются. Как указано в документации Здесь TextInputLayout
и TextInputEditText
предназначены для использования, как в приведенном ниже примере (из официального документа)
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/form_username"/>
</android.support.design.widget.TextInputLayout>
Также основное отличие заключается в сравнении TextInputEditText
с EditText
. TextInputEditText
дает подсказку, когда макет просматривается в альбомном режиме. Это подробно объясняется TWiStErRob. Надеюсь, это ответит на вопрос. Спасибо.