1. ホーム
  2. android

[解決済み] 追加されたEditTextはTextInputEditTextではありません。代わりにそのクラスを使用するように切り替えてください。

2023-01-04 15:06:14

質問

私は EditText の中に TextInputLayout の中にありますが、サポートライブラリを 23.2.0 にアップグレードすると、logcat にこのような警告が表示されます。 EditTextTextInputEditText ? それに関するドキュメントが見つからないようです。

どのように解決するのですか?

私も不思議に思っていました。 ダニエル・ウィルソン はドキュメントを集めましたが、素人目にはあまり意味がありません。以下はその内容です。 抽出モード。 とは、携帯電話のランドスケープなど、スペースが小さすぎる場合に表示されるタイプのビューを指します。私は Galaxy S4 を使用しており、入力メソッド エディタ (IME) として Google キーボードを使用しています。

IME が表示されていない横向きの UI

フォーカス(説明)に基づいて、次のことがわかります。 TextInputLayout がヒントをエディタの外に押し出す動作が見られます。ここでは何も特別なことはありません。 TextInputLayout が行うことになっていることです。

ランドスケープUIで空の名前フィールドを編集する

Name を編集すると、IME が何を編集しているかのヒントを与えないことがわかります。

空の説明フィールドを編集するランドスケープUI

説明文を編集すると、IME が編集中のヒントを与えてくれることがわかります。

レイアウトXML

この2つのフィールドの違いは、そのタイプです EditText VS TextInputEditText . ここで重要なのは TextInputLayoutandroid: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>