수색…


소개

TextInputLayout은 EditText에 플로팅 레이블을 표시하기 위해 도입되었습니다. 플로팅 레이블을 표시하려면 EditText를 TextInputLayout으로 래핑해야합니다.

비고

TextInputLayout 은 사용자 입력 텍스트로 인해 힌트가 숨겨져있을 때 EditText (또는 자손)를 래핑하여 플로팅 레이블을 표시하는 레이아웃입니다. 또한 TextInputLayout 사용하면 EditText 아래에 오류 메시지를 표시 할 수 있습니다.

종속성에 따라 앱의 build.gradle 파일에 다음 종속성이 추가되었는지 확인하십시오.

compile 'com.android.support:design:25.3.1'

기본 사용법

TextInputLayout 의 기본 사용법입니다.
설명 섹션에 설명 된대로 build.gradle 파일에 종속성을 추가하십시오.

예:

 <android.support.design.widget.TextInputLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content">

     <EditText
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:hint="@string/username"/>
 
 </android.support.design.widget.TextInputLayout>

오류 처리

TextInputLayout 을 사용하여 setErrorsetErrorEnabled 메소드를 사용하여 머티리얼 디자인 지침 에 따라 오류 메시지를 표시 할 수 있습니다.

EditText 아래에 오류를 표시하려면 다음을 사용하십시오.

TextInputLayout til = (TextInputLayout) findViewById(R.id.username);
til.setErrorEnabled(true);
til.setError("You need to enter a name");

TextInputLayout 에서 오류를 사용하려면 xml 또는 til.setErrorEnabled(true); 에서 app:errorEnabled="true" 를 사용할 수 있습니다 til.setErrorEnabled(true); 위에 표시된대로.

당신은 얻을 것이다 :

여기에 이미지 설명을 입력하십시오.

문자 계수 추가하기

TextInputLayout에는 그 안에 정의 된 EditText에 대한 문자 카운터 가 있습니다.
카운터는 EditText 아래에 렌더링됩니다.

setCounterEnabled()setCounterMaxLength 메서드를 사용하면됩니다.

TextInputLayout til = (TextInputLayout) findViewById(R.id.username);
til.setCounterEnabled(true);
til.setCounterMaxLength(15);

또는 xml의 app:counterEnabledapp:counterMaxLength 속성

<android.support.design.widget.TextInputLayout
    app:counterEnabled="true"
    app:counterMaxLength="15">

    <EditText/>

</android.support.design.widget.TextInputLayout>

비밀번호 공개 여부 전환

입력 암호 유형을 사용하면 passwordToggleEnabled 속성을 사용하여 전체 텍스트를 표시하거나 숨길 수있는 아이콘을 활성화 할 수도 있습니다 .

다음 속성을 사용하여 동일한 기본값을 사용자 정의 할 수도 있습니다.

예:

<android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:passwordToggleContentDescription="@string/description"
        app:passwordToggleDrawable="@drawable/another_toggle_drawable"
        app:passwordToggleEnabled="true">

            <EditText/>

</android.support.design.widget.TextInputLayout>

TextInputEditText

TextInputEditText'추출'모드에 있을 때 IME에서 힌트를 표시하는 추가 수정 기능이있는 EditText 입니다.

추출 모드 는 공간이 너무 작을 때 (예 : 스마트 폰의 경치) EditText를 클릭 할 때 키보드 편집기가 전환되는 모드입니다.
이 경우 텍스트를 편집하는 동안 EditText 를 사용하면 IME가 편집중인 것을 알 수 없다는 것을 알 수 있습니다.

TextInputEditText 는 사용자 장치의 IME가 추출 모드 인 동안 힌트 텍스트를 제공하여이 문제를 해결합니다.

예:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Description"
    >
    <android.support.design.widget.TextInputEditText
        android:id="@+id/description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</android.support.design.widget.TextInputLayout>

TextInputLayout의 모양 사용자 정의

styles.xml 에서 사용자 정의 스타일을 정의하여 TextInputLayout 및 포함 된 EditText 의 모양을 사용자 정의 할 수 있습니다. 정의 된 스타일은 TextInputLayout 스타일 또는 테마로 추가 할 수 있습니다.

힌트 모양 사용자 정의 예 :

styles.xml :

<!--Floating label text style-->  
<style name="MyHintStyle" parent="TextAppearance.AppCompat.Small">  
    <item name="android:textColor">@color/black</item>
</style>

<!--Input field style-->  
<style name="MyEditText" parent="Theme.AppCompat.Light">  
    <item name="colorControlNormal">@color/indigo</item>
    <item name="colorControlActivated">@color/pink</item>
</style>  

스타일을 적용하려면 다음과 같이 TextInputLayout 및 EditText를 업데이트하십시오.

<android.support.design.widget.TextInputLayout  
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:hintTextAppearance="@style/MyHintStyle">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/Title"
        android:theme="@style/MyEditText" />

</android.support.design.widget.TextInputLayout>  

TextInputLayout 의 액센트 색상을 사용자 정의하는 예제입니다. 강조 색상은 EditText 의 기준선 색상과 부동 힌트 텍스트의 텍스트 색상에 영향을줍니다.

styles.xml :

<style name="TextInputLayoutWithPrimaryColor" parent="Widget.Design.TextInputLayout">
    <item name="colorAccent">@color/primary</item>
</style> 

레이아웃 파일 :

<android.support.design.widget.TextInputLayout
            android:id="@+id/textInputLayout_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/TextInputLayoutWithPrimaryColor">

            <android.support.design.widget.TextInputEditText
                android:id="@+id/textInputEditText_password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/login_hint_password"
                android:inputType="textPassword" />

</android.support.design.widget.TextInputLayout>


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow