Android
TextInputLayout
Sök…
Introduktion
TextInputLayout introducerades för att visa den flytande etiketten på EditText. EditText måste lindas av TextInputLayout för att visa den flytande etiketten.
Anmärkningar
TextInputLayout är en layout som slår in ett EditText (eller efterkommer) för att visa en flytande etikett när antydningen är dold på grund av att användaren matar in text. Dessutom ger TextInputLayout dig TextInputLayout att visa ett felmeddelande under EditText .
Se till att följande beroende läggs till i appens build.gradle fil under beroenden:
compile 'com.android.support:design:25.3.1'
Grundläggande användning
Det är den grundläggande användningen av TextInputLayout .
Se till att lägga till beroendet i build.gradle filen som beskrivs i kommentarerna.
Exempel:
<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>
Hantera fel
Du kan använda TextInputLayout att visa felmeddelanden enligt riktlinjerna för materialdesign med hjälp av setError och setErrorEnabled .
För att visa felet under EditText använder du:
TextInputLayout til = (TextInputLayout) findViewById(R.id.username);
til.setErrorEnabled(true);
til.setError("You need to enter a name");
För att aktivera fel i TextInputLayout du eithr använda app:errorEnabled="true" i xml eller til.setErrorEnabled(true); som visas ovan.
Du får:
Lägga till teckenräkning
Den TextInputLayout har en teckenräknare för en Edittext definieras i det.
Räknaren kommer att visas under EditText.
setCounterEnabled() och setCounterMaxLength :
TextInputLayout til = (TextInputLayout) findViewById(R.id.username);
til.setCounterEnabled(true);
til.setCounterMaxLength(15);
eller app:counterEnabled och app:counterMaxLength attribut i xml.
<android.support.design.widget.TextInputLayout
app:counterEnabled="true"
app:counterMaxLength="15">
<EditText/>
</android.support.design.widget.TextInputLayout>
Lösenordets synlighet växlar
Med en inmatad lösenordstyp kan du också aktivera en ikon som kan visa eller dölja hela texten med attributet passwordToggleEnabled .
Du kan också anpassa samma standard med hjälp av dessa attribut:
-
passwordToggleDrawable: för att ändra standardögonikonen -
passwordToggleTint: för att applicera en nyans på lösenordets synlighet för att kunna dra ut. -
passwordToggleTintMode: för att ange blandningsläget som används för att tillämpa bakgrundsfärgen.
Exempel:
<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 är ett EditText med en extra fix för att visa en ledtråd i IME i "extrakt" -läge .
Extract-läget är det läge som tangentbordsredigeraren byter till när du klickar på ett EditText när utrymmet är för litet (till exempel liggande på en smartphone).
I det här fallet, med ett EditText när du redigerar texten, kan du se att IME inte ger dig antydan till vad du redigerar
TextInputEditText åtgärdar det här problemet som ger antydanstext medan användarens enhets IME är i Extract-läge.
Exempel:
<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>
Anpassa utseendet på TextInputLayout
Du kan anpassa utseendet på TextInputLayout och dess inbäddade EditText genom att definiera anpassade stilar i dina styles.xml . De definierade stilarna kan antingen läggas till som stilar eller teman till din TextInputLayout .
Exempel för anpassning av antydan till antydan:
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>
För att tillämpa stil uppdaterar du TextInputLayout Och EditText enligt följande
<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>
Exempel för att anpassa accentfärgen för TextInputLayout . Accentfärgen påverkar färgen på baslinjen för EditText och EditText för den flytande antydningstexten:
styles.xml :
<style name="TextInputLayoutWithPrimaryColor" parent="Widget.Design.TextInputLayout">
<item name="colorAccent">@color/primary</item>
</style>
layoutfil:
<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>
