Estoy usando la biblioteca de compatibilidad de diseño de Android lanzada recientemente para mostrar etiquetas flotantes con EditTexts. Pero me enfrento al problema de que la sugerencia en EditText no se muestra cuando se representa la interfaz de usuario, pero veo la sugerencia después de centrarme en los EditTexts.
Mi diseño es el siguiente:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:id="@+id/ScrollView01"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin">
<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="@string/feedbackname"
android:inputType="textPersonName|textCapWords" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/email_textinputlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/FeedBackerEmailET"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/feedbackemail"
android:inputType="textEmailAddress" />
</android.support.design.widget.TextInputLayout>
<Spinner
android:id="@+id/SpinnerFeedbackType"
android:layout_width="fill_parent"
android:layout_height="48dp"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:entries="@array/feedbacktypelist"
android:prompt="@string/feedbacktype" />
<android.support.design.widget.TextInputLayout
android:id="@+id/body_textinputlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/EditTextFeedbackBody"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/feedbackbody"
android:inputType="textMultiLine|textCapSentences"
android:lines="5" />
</android.support.design.widget.TextInputLayout>
<CheckBox
android:id="@+id/CheckBoxFeedBackResponse"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:text="@string/feedbackresponse" />
<Button
android:id="@+id/ButtonSendFeedback"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:text="@string/feedbackbutton" />
</LinearLayout>
</ScrollView>
</FrameLayout>
<View
android:layout_width="match_parent"
android:layout_height="5dp"
android:background="@drawable/toolbar_shadow" />
</FrameLayout>
También intenté establecer una pista para el TextInputLayout
método de uso, setHint
pero no tuve suerte.
mNameTextInputLayout = (TextInputLayout) v.findViewById(R.id.name_et_textinputlayout);
mNameTextInputLayout.setErrorEnabled(true);
mNameTextInputLayout.setHint(feedBackerNameET.getHint());
mEmailTextInputLayout = (TextInputLayout) v.findViewById(R.id.email_textinputlayout);
mEmailTextInputLayout.setErrorEnabled(true);
mEmailTextInputLayout.setHint(feedBackerEmail.getHint());
mBodyTextInputLayout = (TextInputLayout) v.findViewById(R.id.body_textinputlayout);
mBodyTextInputLayout.setErrorEnabled(true);
mBodyTextInputLayout.setHint(feedBackBody.getHint());
android
material-design
android-design-library
Shajeel Afzal
fuente
fuente
Respuestas:
Actualizar:
Este es un error que se ha corregido en la versión 22.2.1 de la biblioteca.
Respuesta original:
Como lo mencionó @shkschneider, este es un error conocido . El usuario de Github @ ljubisa987 publicó recientemente un Gist para una solución alternativa:
https://gist.github.com/ljubisa987/e33cd5597da07172c55d
Como se señaló en los comentarios, la solución solo funciona en Android Lollipop y versiones anteriores. No funciona en la Vista previa de Android M.
fuente
Ese es un error conocido de la biblioteca de diseño de Android. Ha sido aceptado y asignado .
Por lo tanto, debería solucionarlo en la próxima versión de la biblioteca de diseño de Android.
Mientras tanto, puede ver el rastreador de problemas en busca de una solución de piratería que podría publicarse allí, pero no conozco ninguna por ahora.
Y sí, solo afecta a Lollipop y superiores.
fuente
Esto me funciona en Design Library 23.1.1:
Establezca el color de la sugerencia en los atributos xml de TextInputLayout:
fuente
Este problema se solucionó en la versión 22.2.1
fuente
debe usar
android.support.v7.widget.AppCompatEditText
comoEditText
y establecerandroid:hint
como a continuaciónfuente
Utilice este fragmento de código. Asegúrese de que su actividad sea AppCompatActivity. Y la dependencia también está con las últimas versiones
Actualice Android Studio a la última versión. ver salida aquí
fuente
Si está configurando su sugerencia EditText programáticamente, ¡no funcionaría! Debe establecer la sugerencia en el TextInputLayout en sí mismo.
Aquí está el XML en caso de que se lo pregunte:
fuente
Este problema se resuelve en la
v23.0.1
biblioteca de diseño de soporte. También actualicé miappcompat-v7
to23.0.1
,compileSdkVersion
to23
&buildToolsVersion
to23.0.1
en build.gradle .fuente
Resolví mi problema con este código:
La clave aquí es el
bringToFront
. ObligaTextInputLayout
a rehacer su dibujo, que no es lo mismo que hacerloinvalidate()
. Si está intentando mostrarTextInputLayout
en unview
que tieneanimations
otranistions
, debe ejecutar el código anterior al final deanimation
otransition
. Solo asegúrese de que el código anterior se ejecute en la interfaz de usuariothread
.fuente
Parece que este problema aparece cuando configura onFousListener en EditText: intente extender EditText y admitir múltiples onFocusListeners
fuente
Establezca un color de sugerencia que contraste con el fondo de EditText.
<item name="android:textColorHint">#FF424242</item>
Relacionado:
setHintTextColor () en EditText
Cambiar el color de la sugerencia de EditText cuando se usa TextInputLayout
Cómo cambiar el color de la etiqueta flotante de TextInputLayout
fuente
Problema resuelto: vaya a build.gradle de su aplicación y verifique la biblioteca de diseño. compile 'com.android.support:design:22.2.1' Debería ser 22.2.1 o más reciente.
fuente
El problema es el color de la pista. Se vuelve blanco al escribir algo. Cambie el color de la pista o cambie el color de fondo. Verá la pista mientras escribe.
fuente
Hay una solución simple para esto, ya que funcionó para mí.
Simplemente agregue android: theme = "@ style / Base.TextAppearance.AppCompat" al TextEditLayout y debería funcionar y puede cambiar el tema según lo necesite.
fuente
Solo agregue:
android:hint="your_hint"
paraTextInputLayout
.fuente
Encontré algo diferente.
Al establecer el estilo para
fragment
,El error desapareció cuando probé estilos diferentes a
"Theme_DeviceDefault_Dialog"
.Darle una oportunidad.
fuente