Cambié el color de un título de AlertDialog usando este comando
alert.setTitle( Html.fromHtml("<font color='#FF7F27'>Set IP Address</font>"));
Pero quiero cambiar el color de la línea que aparece debajo del título; Cómo puedo hacer eso ?
Nota: no quiero usar un diseño personalizado
android
android-alertdialog
Mohammed Subhi Sheikh Quroush
fuente
fuente
Respuestas:
Desafortunadamente, esta no es una tarea particularmente sencilla de realizar. En mi respuesta aquí , detallo cómo ajustar el color de un
ListSeparator
simplemente revisando el estilo principal utilizado por Android, creando una nueva imagen y creando un nuevo estilo basado en el original. Desafortunadamente, a diferencia delListSeparator
estilo de ',AlertDialog
temas son internos y, por lo tanto, no se puede hacer referencia a ellos como estilos principales. ¡No hay una manera fácil de cambiar esa pequeña línea azul! Por lo tanto, debe recurrir a la creación de cuadros de diálogo personalizados.Si esa no es tu taza de té ... ¡ no te rindas! Me molestó mucho que no hubiera una manera fácil de hacer esto, así que configuré un pequeño proyecto en github para hacer diálogos de estilo holográfico personalizados rápidamente (asumiendo que el teléfono admite el estilo Holo). Puede encontrar el proyecto aquí: https://github.com/danoz73/QustomDialog
¡Debería permitir pasar fácilmente de un azul aburrido a un naranja emocionante!
El proyecto es básicamente un ejemplo del uso de un generador de diálogo personalizado, y en el ejemplo creé una vista personalizada que parecía adaptarse al ejemplo de dirección IP que proporcionaste en tu pregunta original.
Con
QustomDialog
, para crear un cuadro de diálogo básico (título, mensaje) con un color diferente deseado para el título o divisor, utilice el siguiente código:Y para agregar un diseño personalizado (por ejemplo, para agregar la pequeña dirección IP
EditText
), agregaal constructor con un diseño que haya diseñado (el ejemplo de IP se puede encontrar en el github). Espero que esto ayude. Muchas gracias a Joseph Earl y su respuesta aquí .
fuente
setItems
en este cuadro de diálogo personalizado. Cuando agrego la lista, en realidad cambia el título debajo de la lista. Cómo resolver este problema.Color divisor:
Es un truco un poco, pero funciona muy bien para mí y funciona sin ninguna biblioteca externa (al menos en Android 4.4).
Puede encontrar más ID de diálogo en el archivo alert_dialog.xml . P.ej.
android:id/alertTitle
para cambiar el color del título ...ACTUALIZACIÓN: color del título
Truco para cambiar el color del título:
fuente
android.util.AndroidRuntimeException: requestFeature() must be called before adding content
aquí.DialogFragment
en los que el color del título no tiene identificación,android:id/alertTitle
pero no encontré el correcto.NullPointerException
alsetTextColor()
comprueba que esto te sea útil ...
obtienes detalles del siguiente enlace.
http://developer.android.com/reference/android/app/AlertDialog.Builder.html#setCustomTitle%28android.view.View%29
CustomDialog.java
title.xml
fuente
Esto establecerá el color del título, el icono y el divisor. Listo para cambiar con cualquier nueva versión de Android.
Recuerde llamar a dialog.show () antes de llamar a este método.
fuente
Siguiendo el código fuente de Dialog , encontré que el Título se genera en Clase
MidWindow
al inflar eldialog_title_holo.xml
diseño. entonces el Id demTitleView
estitle
y el Id de divisor estitleDivider
.podemos acceder a Id de
title
simplemente porandroid.R.id.title
.y acceso a Id de
titleDivider
porResources.getSystem().getIdentifier("titleDivider","id", "android");
El código final que utilicé para cambiar la dirección del título y cambiar el color es:
fuente
Si no quieres una "biblioteca" para eso, puedes usar este mal truco:
Esto fue probado y funciona en 4.x; no probado bajo, pero si mi memoria es buena debería funcionar para 2.xy 3.x
fuente
En la clase onCreateView, pongo esto:
colorPrimary tiene enlaces a nuestro archivo colors.xml que almacena todos los colores. También
d.setTitle
proporciona una forma engañosa de establecer el color del título.fuente
Si está creando un diseño personalizado para el cuadro de diálogo de alerta
entonces puede agregar así fácilmente para cambiar el color
fuente
Si usa un diseño de título personalizado , puede usarlo como
alertDialog.setCustomTitle(customTitle);
Ejemplo
En el diálogo de uso del hilo de la interfaz de usuario como:
customtitlebar.xml
fuente
Aquí hay otra solución (basada en respuestas sugeridas) que maneja el estilo de los cuadros de diálogo en una clase sin necesidad de preocuparse por el estado del cuadro de diálogo cuando cambia el estilo; el cuadro de diálogo ya se puede mostrar o simplemente inicializar.
Ejemplo de uso:
Implementación:
fuente
Continuando con esta respuesta: https://stackoverflow.com/a/15285514/1865860 , bifurqué el agradable repositorio de github de @ daniel-smith e hice algunas mejoras:
setItems
método fijoitems_list
setItems
métodoslistItem
retroalimentación táctilenlace: https://github.com/dentex/QustomDialog
fuente
En lugar de usar el divisor en el diálogo, use la vista en el diseño personalizado y configure el diseño como diseño personalizado en el diálogo.
custom_popup.xml:
activity.java:
fuente
fuente
En caso de que esté utilizando la ampliación del cuadro de diálogo, utilice:
fuente