textinputedittext example android android-edittext android-support-library android-design-library android-textattributes

android - example - Cambie el color de la pista EditText cuando use TextInputLayout



textinputedittext example (20)

Agregue la propiedad textColorHint a su texto de edición

android:textColorHint="#F6F6F6"

o el color que quieras

Estoy usando el nuevo TextInputLayout de la biblioteca de diseño. Puedo hacer que se muestre y cambiar el color de la etiqueta flotante. Desafortunadamente, la sugerencia real de EditText ahora es siempre blanca.

Intenté cambiar hintColor en XML, estilos y mediante programación, y también intenté usar android.support.v7.widget.AppCompatEditText pero la sugerencia EditText siempre se muestra en blanco.

Aquí está mi XML para mi TextInputLayout y EditText

<android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android.support.design:hintTextAppearance="@style/GreenTextInputLayout"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/city" android:textColorHint="@color/black" android:hint="@string/city" /> </android.support.design.widget.TextInputLayout>

Y aquí está el estilo que estoy usando para TextInputLayout (intenté hacer que el atributo hintTextColor negro pero no hice nada por mí):

<style name="GreenTextInputLayout" parent="@style/TextAppearance.AppCompat"> <item name="android:textColor">@color/homestory_green</item> </style>


Aquí está mi experiencia con este problema similar y la solución requerida.

Requisito:

  • Necesita crear personalizar TextInputEditText (puede decir que algunos deberían ser transparentes y otros no, pero usar colores personalizados para varios eventos)

Problema enfrentado:

  • android:textColorHint no funciona como se requiere.

Soluciones probadas, que fallaron:

  • android:textColorHint usado android:textColorHint en estilo y aplicado a TextInputEditText . Sin resultados ni diferencia.
  • Establezca android:textColorHint en el tema de la aplicación aplicada. Ayudó, pero ahora estaba configurado para toda la aplicación. (No cumple con los requisitos)

Después de mucho RnD, la mejor SOLUCIÓN encontrada fue en un artículo que describe que necesitamos aplicar el tema a TextInputLayout o a su vista principal en lugar de solo aplicar el estilo a TextInputEditText o a su vista principal.

Por favor, compruebe el tema apropiado de TextInputLayout, que nos dice cómo estamos en el camino equivocado.


Consulte el siguiente código que funcionó para mí, pero afectará el color de todos sus controles.

<!-- In your style.xml file --> <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> <!--EditText hint color--> <item name="android:textColorHint">@color/default_app_white</item> <!-- TextInputLayout text color--> <item name="colorControlActivated">@color/default_app_green</item> <!-- EditText line color when EditText on-focus--> <item name="colorControlHighlight">@color/default_app_green</item> <!-- EditText line color when EditText in un-focus--> <item name="colorControlNormal">@color/default_app_white</item> </style>


Crear estilo personalizado en style.xml

<style name="EditTextHint" parent="TextAppearance.AppCompat"> <item name="colorAccent">@android:color/white</item> <item name="android:textColorHint">@color/BackgroundtWhiteColor</item> <item name="colorControlNormal">@color/BackgroundtWhiteColor</item> <item name="colorControlActivated">@color/your color</item> <item name="colorControlHighlight">@color/BackgroundtWhiteColor</item> </style>

Luego, en su archivo xml de diseño, agregue el atributo de tema como se muestra a continuación

<android.support.design.widget.TextInputLayout android:theme="@style/EditTextHint" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content"/> </android.support.design.widget.TextInputLayout>

espero que esto funcione


De acuerdo con esto: https://code.google.com/p/android/issues/detail?id=176559

Prueba esto:

<android.support.design.widget.TextInputLayout android:textColorHint="#A7B7C2" android:layout_width="match_parent" android:layout_height="50dp"> <EditText android:id="@+id/et_confirm_password" android:textColor="@android:color/black" android:hint="Confirm password" android:inputType="textPassword" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.design.widget.TextInputLayout>

Funciona en 23.1.1.


Debe establecer el color de la pista en TextInputLayout.


Defina android:textColorHint en el tema de su aplicación:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primary_dark</item> <item name="colorAccent">@color/accent</item> <item name="android:textColorHint">@color/secondary_text</item> </style>

Source


En el TextInputLayout que contiene EditText, agregue:

android:textColorHint="someColor"


Muchas respuestas pero solo necesitan una línea para esto:

android: textColorHint = "# 000000"

<EditText android:id="@+id/edtEmail" android:textColorHint="#000000" android:layout_width="match_parent" android:layout_height="wrap_content"/>


No estoy seguro de qué causa su problema, este código funciona perfectamente para mí. Creo que tiene algo que ver con el uso del espacio de nombres xml correcto ( xmlns ). No estoy seguro si se admite el uso de android.support.design sin el atributo de espacio de nombres xml. O tiene algo que ver con el atributo textColorHint que está utilizando en el propio EditText.

Diseño:

<android.support.design.widget.TextInputLayout xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" app:hintTextAppearance="@style/GreenTextInputLayout"> <android.support.v7.widget.AppCompatEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="test" android:inputType="text" /> </android.support.design.widget.TextInputLayout>

Estilo:

<style name="GreenTextInputLayout" parent="@android:style/TextAppearance"> <item name="android:textColor">#00FF00</item> </style>


Parece que la vista principal tenía un estilo para una biblioteca de terceros que causaba que EditText fuera blanco.

android:theme="@style/com_mixpanel_android_SurveyActivityTheme"

Una vez que eliminé esto, todo funcionó bien.


Prueba el siguiente código:

El color de la luz alta es blanco:

<android.support.design.widget.TextInputLayout android:id="@+id/input_layout_mobile" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/TextStyle" > <EditText android:id="@+id/input_mobile" android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:drawablePadding="14dp" android:drawableLeft="8dp" android:textColor="@color/white" android:hint="Mobile" /> </android.support.design.widget.TextInputLayout>

estilo: TextStyle

<style name="TextStyle" parent="TextAppearance.AppCompat"> <!-- Hint color and label color in FALSE state --> <item name="android:textColorHint">@color/white</item> <item name="android:textSize">20sp</item> <!-- Label color in TRUE state and bar color FALSE and TRUE State --> <item name="colorAccent">@color/white</item> <item name="colorControlNormal">@color/white</item> <item name="colorControlActivated">@color/white</item> </style>


Puede usar android:textColorHint="@color/color_black" dentro de TextInputlayout Me funcionó.

<android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_10" android:textColorHint="@color/color_black" app:hintTextAppearance="@style/TextLabel"> <EditText android:id="@+id/et_state" style="@style/profile_editTextStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/billingState" android:text="@string/billingState" /> </android.support.design.widget.TextInputLayout>


Tengo el mismo problema. Se resolvió poniendo estas líneas en el tema principal .

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/ColorPrimaryDark</item> <item name="colorPrimaryDark">@color/ColorPrimaryDark</item> <item name="colorAccent">@color/AccentColor</item> <item name="android:windowTranslucentStatus">true</item> <item name="android:textColorHint">@color/BackgroundtWhiteColor</item> <item name="colorControlNormal">@color/BackgroundtWhiteColor</item> <item name="colorControlActivated">#ff0000</item> <item name="colorControlHighlight">@color/BackgroundtWhiteColor</item> <!-- Customize your theme here. --> </style>

Si pones estos

<item name="android:textColorHint">@color/BackgroundtWhiteColor</item> <item name="colorControlNormal">@color/BackgroundtWhiteColor</item> <item name="colorControlActivated">#ff0000</item> <item name="colorControlHighlight">@color/BackgroundtWhiteColor</item>

en un estilo separado y aplicarlo a TextInputLayout o Edittext no aparecerá. DEBE colocarlo en el tema principal de la aplicación.


android: textColorHint = "# FFFFFF" a veces funciona y a veces no. Para mí, la solución a continuación funciona perfectamente

Pruebe el siguiente código: funciona en su archivo XML y el tema TextLabel se define en style.xml

<android.support.design.widget.TextInputLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:theme="@style/MyTextLabel"> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="Floating Label" android:id="@+id/edtText"/> </android.support.design.widget.TextInputLayout>

En la carpeta de estilos TextLabel Code

<style name="MyTextLabel" parent="TextAppearance.AppCompat"> <!-- Hint color and label color in FALSE state --> <item name="android:textColorHint">@color/Color Name</item> <!--The size of the text appear on label in false state --> <item name="android:textSize">20sp</item> <!-- Label color in TRUE state and bar color FALSE and TRUE State --> <item name="colorAccent">@color/Color Name</item> <item name="colorControlNormal">@color/Color Name</item> <item name="colorControlActivated">@color/Color Name</item> </style>

Si solo desea cambiar el color de la etiqueta en estado falso, no se requieren colorAccent, colorControlNormal y colorControlActivated


tarde pero puede ayudar a alguien que he hecho así

<android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginLeft="30dp" android:layout_marginStart="30dp" android:textColorHint="#8cffffff"> <android.support.v7.widget.AppCompatEditText android:id="@+id/email_edit" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/security_email" android:inputType="textEmailAddress" android:textColor="@color/white" app:backgroundTint="#8cffffff" /> </android.support.design.widget.TextInputLayout>


intente esto puede esto ayudar

edittext.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "onTextChanged", 2000).show();; //newuser.setTextColor(Color.RED); edittext.setHintTextColor(Color.RED); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "afterTextChanged", 2000).show();; } });


<android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Name" android:textColor="@color/black" android:textColorHint="@color/grey"/> </android.support.design.widget.TextInputLayout>

Use textColorHint para establecer el color que desea como color de Sugerencia para EditText. La cuestión es que la Sugerencia en EditText desaparece no cuando escribe algo, sino inmediatamente cuando EditText se enfoca (con una animación genial). Notarás esto claramente cuando cambies el foco hacia EditText.


<android.support.design.widget.TextInputLayout android:id="@+id/input_layout_passdword" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColorHint="#d3d3d3"> <EditText android:id="@+id/etaddrfess_ciwty" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@android:color/transparent" android:bottomLeftRadius="10dp" android:bottomRightRadius="50dp" android:fontFamily="@font/frutiger" android:gravity="start" android:hint="@string/address_city" android:padding="10dp" android:textColor="#000000" android:textColorHint="#000000" android:textSize="14sp" android:topLeftRadius="10dp" android:topRightRadius="10dp" /> </android.support.design.widget.TextInputLayout>``


<item name="colorAccent">@android:color/black</item>

cambia tu colorAccent a tu color deseado dentro de tu Tema, esto cambiará tu línea EditText, Cursor, así como tu pista

o también puede incluir este estilo dentro de su style.xml

<style name="TextLabel" parent="TextAppearance.AppCompat"> <!-- Hint color and label color in FALSE state --> <item name="android:textColorHint">@android:color/black</item> <item name="android:textSize">20sp</item> <!-- Label color in TRUE state and bar color FALSE and TRUE State --> <item name="colorAccent">@android:color/black</item> <item name="colorControlNormal">@android:color/black</item> <item name="colorControlActivated">@android:color/black</item> </style>

entonces dentro de su TextInputLayout puede ponerlo así

<android.support.design.widget.TextInputLayout android:id="@+id/input_layout_password" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/TextLabel"> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawableLeft="@drawable/password" android:drawableStart="@drawable/password" android:maxLines="1" android:hint="password" android:inputType="textWebPassword" /> </android.support.design.widget.TextInputLayout>