textinputedittext - textinputlayout android




Cambie el color de la pista EditText cuando use TextInputLayout (14)

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>

Agregue la propiedad textColorHint a su texto de edición

android:textColorHint="#F6F6F6"

o el color que quieras


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.


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.


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"

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.


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.


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: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>




android-textattributes