Me gustaría cambiar el color azul debajo del texto de edición, no sé qué propiedad es.
Intenté usar un color de fondo diferente, pero no funcionó.
Adjunto una imagen a continuación:
Me gustaría cambiar el color azul debajo del texto de edición, no sé qué propiedad es.
Intenté usar un color de fondo diferente, pero no funcionó.
Adjunto una imagen a continuación:
Respuestas:
En realidad, es bastante fácil establecer el color de subrayado de un EditText mediante programación (solo una línea de código).
Para configurar el color:
editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);
Para quitar el color:
editText.getBackground().clearColorFilter();
Nota: cuando el EditText tiene el enfoque , el color que establezca no tendrá efecto, en cambio, tiene un color de enfoque.
Referencia API:
Control.Background.SetColorFilter(Android.Graphics.Color.White, PorterDuff.Mode.SrcIn);
Renderer
anula? Estoy tratando de averiguar cómo hacer que esto funcione para una barra de búsqueda.
SearchBarRenderer
no sea del tipo EditText
. No puedo hacer que funcione.
Utilizar android:backgroundTint=""
en su EditText
diseño xml.
Para api <21 puede usar AppCompatEditText
desde la biblioteca de soporte luegoapp:backgroundTint=""
android:background="@null"
para dispositivos con api <21.
Tienes que usar una imagen de fondo diferente, no un color, para cada estado del EditText
(foco, habilitado, activado).
http://android-holo-colors.com/
En el sitio anterior, puede obtener imágenes de muchos componentes del tema Holo. Simplemente seleccione "EditText" y el color que desee. Puede ver una vista previa en la parte inferior de la página.
Descargue el archivo .zip y copie y pegue los recursos en su proyecto (imágenes y XML).
si su XML se llama: apptheme_edit_text_holo_light.xml (o algo similar):
Vaya a su XML "styles.xml" y agregue el EditText
estilo personalizado :
<style name="EditTextCustomHolo" parent="android:Widget.EditText">
<item name="android:background">@drawable/apptheme_edit_text_holo_light</item>
<item name="android:textColor">#ffffff</item>
</style>
Solo haz esto en tu EditText
:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/EditTextCustomHolo"/>
Y eso es todo, espero que te ayude.
Esto funciona bien para versiones antiguas y nuevas de Android (¡funciona bien incluso en API 10!).
Defina este estilo en su styles.xml
:
<style name="EditText.Login" parent="Widget.AppCompat.EditText">
<item name="android:textColor">@android:color/white</item>
<item name="android:textColorHint">@android:color/darker_gray</item>
<item name="colorAccent">@color/blue</item>
<item name="colorControlNormal">@color/blue</item>
<item name="colorControlActivated">@color/blue</item>
</style>
Y ahora en su XML, configure esto como tema y estilo ( estilo para configurar textColor
y tema para configurar todas las demás cosas):
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
style="@style/EditText.Login"
android:theme="@style/EditText.Login"/>
Esta solución causa una pequeña falla en la interfaz de usuario en las versiones más recientes de Android (Lollipop o Marshmallow en adelante) que los identificadores de selección están subrayados.
Este tema se discute en este hilo . (No he probado esta solución personalmente)
puede cambiar el subrayado del color de EditText especificándolo en styles.xml . En el tema styles.xml de su aplicación, agregue lo siguiente.
<item name="android:textColorSecondary">@color/primary_text_color</item>
Como lo señaló ana en la sección de comentarios
<item name="android:colorControlActivated">@color/black</item>
establecer esto en el estilo del tema funciona bien para cambiar el color de un subrayado de texto de edición.
android:textColorSecondary
se utiliza para determinar el color de la flecha hacia atrás y el DrawerLayout
icono de hamburguesa en la barra de acciones.
<item name="colorControlNormal">@color/edittext_underline_color</item>
lugar de textColorSecondary debido al problema de coloración de la barra de navegación.
Por lo tanto, debe crear un nuevo archivo .xml en su carpeta dibujable.
En ese archivo pega este código:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="8dp"
android:left="-3dp"
android:right="-3dp"
android:top="-3dp">
<shape android:shape="rectangle">
<stroke
android:width="1dp"
android:color="@color/white"/>
</shape>
</item>
</layer-list>
Y en su EditText, configure
android:background="@drawable/your_drawable"
Puede jugar con su xml dibujable, establecer esquinas, rellenos, etc.
En el estilo de su aplicación, defina la propiedad colorAccent . Aquí encuentras un ejemplo
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/action_bar</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/action_bar</item>
</style>
Puede cambiar el color de EditText mediante programación simplemente usando esta línea de código fácilmente:
edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));
Utilice el siguiente código para cambiar el color de fondo del borde del texto de edición.
Cree un nuevo archivo XML en drawable.
abc.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#00000000" />
<stroke android:width="1dip" android:color="#ffffff" />
</shape>
y agréguelo como fondo de su texto de edición
android:background="@drawable/abc"
Para cambiar el color de la línea de fondo, puede usar esto en el tema de su aplicación:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">#c5c5c5</item>
<item name="colorControlActivated">#ffe100</item>
<item name="colorControlHighlight">#ffe100</item>
</style>
Para cambiar el color de la etiqueta flotante, escriba el siguiente tema:
<style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">#4ffd04[![enter image description here][1]][1]</item>
</style>
y usa este tema en tu diseño:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">
<EditText
android:id="@+id/edtTxtFirstName_CompleteProfileOneActivity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:capitalize="characters"
android:hint="User Name"
android:imeOptions="actionNext"
android:inputType="text"
android:singleLine="true"
android:textColor="@android:color/white" />
</android.support.design.widget.TextInputLayout>
Puedes hacerlo con AppCompatEditText y selector de color:
<androidx.appcompat.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:backgroundTint="@color/selector_edittext_underline" />
selector_edittext_underline.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/focused_color"
android:state_focused="true" />
<item android:color="@color/hint_color" />
</selector>
Si no tiene que admitir dispositivos con API <21, use backgroundHint en xml, por ejemplo:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:hint="Task Name"
android:ems="10"
android:id="@+id/task_name"
android:layout_marginBottom="15dp"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textColorLink="@color/blue"
android:textColorHint="@color/blue"
android:backgroundTint="@color/lighter_blue" />
Para un mejor soporte y alternativas, use la solución @Akariuz. backgroundHint es la solución más indolora, pero no compatible con versiones anteriores, según sus requisitos, haga una llamada.
Simplemente cambie android: backgroundTint en código xml a su color