Cómo utilizar TextInputLayout en la nueva biblioteca de diseño de android
Recientemente, Google introdujo la nueva Biblioteca de diseño de Android en la forma de utilizar el campo TextInputLayout
para habilitar la función Sugerencia flotante de EditText.
No hay mucha guía disponible aquí .
- WebView en CoordinatorLayout con CollapsingToolbarLayout
- Estilizar texto en TabLayout
- NestedScrollview superpuesta CollapsingToolbarLayout como aplicación gmusic
- Diseño Android de Android TabLayout
- AppBarLayout cambiar compensación mediante programación
Esta página dice
Ahora se puede envolver en un TextInputLayout
Pero ninguna idea porque la predicción inteligente (Ctrl + SPACE) no predice ningún atributo a TextInputLayout. Así que mis preguntas son:
¿Cómo conseguimos el EditText subyacente a este componente?
¿Cómo podemos obtener datos de EditText?
- Biblioteca de soporte de diseño de Android: Utilice ViewPager / TabLayout con barra de desplazamiento y botón pegajoso
- Establecer menú predeterminado para BottomNavigationView
- Cómo implementar la pestaña de navegación inferior según la nueva guía de Google
- SnackBar y fitsSystemWindow
- (Design Support Library) Elementos de la barra de herramientas detrás de la barra de estado
- TabLayout pestaña de selección
- Vistas arriba y abajo de RecyclerView
- Cómo ocultar FAB cuando el teclado está abierto.
TextInputLayout
extiende la clase ViewGroup
. Así que lo que significa que usted tiene que envolver su EditText
en un TextInputLayout
.
<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="hint" android:id="@+id/editText1" /> </android.support.design.widget.TextInputLayout>
Esto se define en la biblioteca de soporte de diseño bajo "Etiquetas flotantes para editar texto".
<android.support.design.widget.TextInputLayout android:id="@+id/name_et_textinputlayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/activity_vertical_margin"> <EditText android:id="@+id/FeedBackerNameET" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="hinttext" android:inputType="textPersonName|textCapWords" /> </android.support.design.widget.TextInputLayout>
EditText
el TextInputLayout
alrededor de TextInputEditText
lugar de EditText
.
Envolver alrededor de EditText
tiene problema en modo horizontal. Consulte este artículo para obtener más detalles.
<android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.design.widget.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="hint" android:id="@+id/editText1" /> </android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout android:id="@+id/til_message" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/et_message" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/type_message" android:maxLines="5"/> </android.support.design.widget.TextInputLayout>
La indirecta cambiará automáticamente hacia arriba una vez que usted comience a mecanografiar en el texto de la edición y tener esos errores que aparecen debajo de corrige el ajuste del texto error en la disposición de entrada de texto como esto no en el texto de la edición
tilMessage.setError("Message field is empty!");
Deshabilitar el error
tilMessage.setErrorEnabled(false);
Para que esto funcione bien, debe dejar que el tema de la aplicación se extienda desde Theme.AppCompat
(o su descendiente), como se extiende desde Theme.AppCompat.Light.NoActionBar
.
Podemos usar AppCompactEditText también para esta necesidad de añadir soporte: appcompat en gradle
<android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp"> <android.support.v7.widget.AppCompatEditText android:id="@+id/et_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hint" android:maxLength="100" android:inputType="textNoSuggestions" android:textColor="@color/colorPrimary" android:textSize="@dimen/font_size_large" /> </android.support.design.widget.TextInputLayout>
- La aplicación de Android se bloquea después de la versión de actualización de las herramientas de SDK (NoClassDefFound, versión de la herramienta 22)
- ADT 22.2 Asistente para nuevas aplicaciones: dependencia de plantilla no admitida: actualiza tu complemento de Android Eclipse