想要了解TextInputEditText和TextInputLayout之间的实际区别,以及何时应该使用它们中的一个。
想要了解TextInputEditText和TextInputLayout之间的实际区别,以及何时应该使用它们中的一个。
它们是互补功能的不同布局。
它们旨在像以下方式一起使用:
<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 的子元素而设计。
TextInputLayout vs TextInputEditText
TextInputLayout
必须包含TextInputEditText
而不是普通的EditText
,因为它专门设计用于内部使用。
如果您在TextInputLayout
中添加EditText
而不是TextInputEditText
,则会收到警告:
EditText added is not a TextInputEditText. Please switch to using that class instead.
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中有详细解释。希望这回答了你的问题。谢谢。