Разница между 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. Надеюсь, это ответит на вопрос. Спасибо.