EditText
内部でを使用していますTextInputLayout
が、サポートライブラリを23.2.0にアップグレードすると、logcatでこの警告が表示されます。通常EditText
との違いは何TextInputEditText
ですか?ドキュメントが見つからないようです。
回答:
私もこれを考えていたのですが、ダニエルウィルソンがドキュメントを収集しましたが、訓練を受けていない人にとっては、あまり意味がありません。ここでは、それは命です:「抽出モードは、」携帯電話上の例の景観のために、スペースが小さすぎると示されていますビューのタイプを参照しています。入力方式エディター(IME)としてGoogleキーボード付きのGalaxy S4を使用しています。
フォーカス(説明に基づく)に基づいて、TextInputLayout
ヒントをエディターの外に押し出す動作を確認できます。ここでは特別なことは何もTextInputLayout
ありません。これが本来の目的です。
名前を編集すると、IMEが編集内容のヒントを与えていないことがわかります。
説明を編集すると、IMEが編集内容のヒントを提供していることがわかります。
2つのフィールドの違いは、タイプEditText
VS TextInputEditText
です。重要なことは、ここではそれがあるTextInputLayout
持っているandroid:hint
とき、これが事実である、とないラップのEditTextをTextInputEditText
Javaコードのの数行は大きな違いになります。
<android.support.design.widget.TextInputLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Item Name"
>
<EditText
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Item Description"
>
<android.support.design.widget.TextInputEditText
android:id="@+id/description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:minLines="4"
android:scrollbars="vertical"
/>
</android.support.design.widget.TextInputLayout>
android:hint
プロパティはではTextInputEditText
なくに入るはずですTextInputLayout
。
TextInputEditText
は、UIの実装の詳細です。
ドキュメントはありませんが、クラスはEditText
1つの追加機能を持つ通常のものです。
このクラスを使用すると、「抽出」モードのときにIMEにヒントを表示できます。
具体的にはを設定しEditorInfo.hintText
ます。あなたにはわかりますTextInputLayout
あなたがヒントを指定することができるクラスと、それは外観ではなく、子の一環としてですEditText
ウィジェット。
それを行う必要がある場合は、を使用してTextInputEditText
、で指定したヒント情報に注意を払う必要がありますTextInputLayout
。
これらは基本的に同じものですが、TextInputEditText
機能と属性のほうが多いと思います。私はに変更しましたがTextInputEditText
、すべてが機能し、以前の標準と同じように見えましたEditText
。