EditText
내부를 사용하고 TextInputLayout
있지만 지원 라이브러리를 23.2.0으로 업그레이드 한 후 logcat에 다음 경고가 표시됩니다. 일반 EditText
및 a 의 차이점은 무엇입니까 TextInputEditText
? 이에 대한 문서를 찾을 수없는 것 같습니다.
답변:
이것도 궁금해서 다니엘 윌슨 이 문서를 모았지만 훈련받지 않은 눈에는 그다지 의미가 없습니다. 여기에 대한 내용이 있습니다. "추출 모드" 는 공간이 너무 작을 때 표시되는보기 유형 (예 : 휴대 전화의 가로 모드)을 나타냅니다. Google 키보드와 함께 Galaxy S4를 IME (입력기)로 사용하고 있습니다.
포커스 (Description)에 TextInputLayout
따라 에디터 외부에서 힌트를 밀어내는 동작을 볼 수 있습니다 . 여기에 특별한 것은 없습니다. 이것이 TextInputLayout
해야 할 일입니다.
이름을 편집하면 IME가 편집중인 내용에 대한 힌트를 제공하지 않음을 알 수 있습니다.
설명을 편집하면 IME가 편집중인 내용에 대한 힌트를 제공함을 알 수 있습니다.
두 필드의 차이점은 유형 EditText
VS TextInputEditText
입니다. 중요한 것은 여기 즉 TextInputLayout
이 android:hint
경우이 경우, 그리고 랩 글고 치기를 TextInputEditText
자바 코드의 몇 줄은 큰 차이가 있습니다.
<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
단일 추가 기능 이있는 일반 클래스입니다 .
이 클래스를 사용하면 '추출'모드에서 IME에 힌트를 표시 할 수 있습니다.
구체적으로 EditorInfo.hintText
. 당신은에 알 수 있습니다 TextInputLayout
당신이 힌트를 지정할 수 있습니다 클래스와는 외관보다는 자식의 한 부분으로의 EditText
위젯.
그렇게해야하는 경우를 사용해야 TextInputEditText
하므로에서 지정한 힌트 정보에주의를 기울여야합니다 TextInputLayout
.