web-dev-qa-db-ja.com

TextInputLayoutとTextInputEditTextの違い

TextInputEditTextとTextInputLayoutの実際の違いを知る必要があります。どちらを使用すべきか。

21
Dwivedi Ji

それらは、お互いの機能を補完する異なるレイアウトです。

  • 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

TextInputLayoutの子として使用するために設計されたEditTextの特別なサブクラス。

26
Budius

ThumbのルールTextInputLayoutは通常のTextInputEditTextの代わりにEditTextをラップする必要があります。
ReasonTextInputEditTextEditTextのサブクラスであり、 TextInputLayoutの子。

EditTextの代わりにTextInputEditTextを使用すると、warningが表示されます。

追加されたEditTextはTextInputEditTextではありません。代わりにそのクラスの使用に切り替えてください。

たとえば、ランドスケープモードでEditTextをラップすると、大きなボックスが表示されますが、ヒントがありません。

Android TextInputLayoutの機能:

  • フローティングヒントの有効化/無効化
  • フローティングヒントアニメーションの有効化/無効化
  • エラーメッセージの表示
  • 文字カウンターの表示
  • 文字数が制限を超えたときにユーザーに警告する
  • フローティングヒント、エラーラベル、文字カウンターのテキストの外観のカスタマイズ
  • パスワードの可視性の切り替え

続きを読む こちら

10
yoAlex5

TextInputLayoutTextInputEditTextは両方とも異なります。ドキュメンテーションで述べたように ここTextInputLayoutTextInputEditTextは以下の例のように使用することを意図しています(公式ドキュメントより)

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

また、主な違いは、TextInputEditTextEditTextを比較するときです。 TextInputEditTextは、レイアウトが横向きモードで表示されるときのヒントを提供します。これは TWiStErRob で詳細に説明されています。これで質問の答えになることを願っています。ありがとうございました。

1
mohammed nathar