¿Cómo puedo cambiar el color del texto de ActionBar? Heredé el Holo Light Theme, puedo cambiar el fondo de ActionBar, pero no sé cuál es el atributo para ajustar para cambiar el color del texto.
Ok, puedo cambiar el color del texto con el atributo android: textColorPrimary pero también cambia el color del texto del menú desplegable que se muestra cuando se produce un desbordamiento en los botones de la barra de acciones. ¿Alguna idea de cómo cambiar el color de ese menú desplegable / Lista?
Respuestas:
Ok, he encontrado una mejor manera. Ahora solo puedo cambiar el color del título. También puedes modificar el subtítulo.
Aquí está mi styles.xml:
fuente
Widget.Holo.Light.ActionBar
forMyTheme.ActionBarStyle
.Encontré una forma que funciona bien con cualquier sabor de
ActionBar
( Sherlock , Compat y Native ):Simplemente use html para establecer el título y especifique el color del texto. Por ejemplo, para establecer el color del texto de la Barra de acciones en rojo, simplemente haga esto:
También puede usar el código hexadecimal rojo en
#FF0000
lugar de la palabrared
. Si tiene problemas con esto, consulte Android Html.fromHtml (String) no funciona para <font color = '#'> texto </font> .Además, si desea usar un recurso de color, este código se puede usar para obtener la cadena HEX correcta y eliminar el alfa si es necesario (la etiqueta de fuente no admite alfa):
fuente
red
con" + color + "
.#FF0000
con"+color+"
.Estaba teniendo el mismo problema que tú, es un tema Holo.Light pero quería diseñar el color de la barra de acción, así que también necesitaba cambiar el color del texto y también el título y los menús. Así que al final fui a git hub y miré el código fuente hasta que encontré el maldito estilo correcto:
por lo que ahora todo lo que tiene que hacer es crear lo que sea
@color/actionBarText
y@drawable/actionbarbground
que usted quiera!fuente
La ID de ActionBar no está disponible directamente, por lo que debe hacer un poco de pirateo aquí.
fuente
NullPointerException
en esta líneaactionBarTextView.setTextColor(Color.RED);
getIndentifier()
, puede consultar(TextView) findViewById(com.actionbarsherlock.R.id.abs__action_bar_title);
primero (asegúrese de verificar si no es nulo).Toolbar toolbar = findViewById(R.id.toolbar);
en qué parte del archivo de diseño xml está rodeada por uncom.google.android.material.appbar.AppBarLayout
elemento, entoncestoolbar.setTitleTextColor( getResources().getColor( R.color.colorViolet ) );
Es un tema antiguo, pero para futuros lectores, usar ToolBar hace que todo sea muy fácil:
fuente
Lo he hecho con un código simple de una línea
fuente
Agréguelo a la raíz de la barra de acción. Tuve este problema
actionMenuTextColor : cambia el color del texto para el texto de la barra de acción, nunca funcionó cuando era parte de la
Widget.Styled.ActionBar
, por lo que tuve que agregarlo a la raíz. Otros 2 atributos cambian el título y los subtítulos de una barra de acción.fuente
Establecer una cadena HTML en la barra de acción no funciona en el tema Material en SDK v21 +
Si desea cambiarlo, debe establecer el color del texto primario en su style.xml
fuente
La forma más directa es hacer esto en styles.xml.
La plantilla styles.xml de Google actualmente genera lo siguiente:
Si agrega una línea más antes de la etiqueta de cierre, como se muestra, eso cambiará el color del texto a lo que debería ser con un Dark ActionBar:
Si desea personalizar el color a otra cosa, puede especificar su propio color en colors.xml o incluso usar un color incorporado de Android usando el atributo android: textColorPrimary:
Nota: Esto cambia el color del título y también los títulos de cualquier MenuItems que se muestra en la Barra de acciones.
fuente
Si también quieres darle estilo al subtítulo, simplemente agrega esto en tu estilo personalizado.
Las personas que buscan obtener el mismo resultado para la
AppCompat
biblioteca, entonces esto es lo que usé:fuente
<item name="android:titleTextStyle">
y<item name="titleTextStyle">
porque estaba usando la biblioteca de soporte de appcompat.Encontró la manera de hacerlo bien sin crear su propio diseño en API> = 21.
Solo coloreará textos y controlará los elementos dibujables dentro de la barra de acción.
Espero que sea útil para alguien.
fuente
Muchas respuestas están en desuso, así que actualizaré el hilo y mostraré cómo cambiar el color del texto y el color de fondo en ActionBar (Barra de herramientas) y en el menú emergente ActionBar.
El último enfoque en Android (a partir de mayo de 2018) al trabajar con la barra de acción (barra de herramientas) es usar Theme con NoActionBar y usar Toolbar en su lugar.
así que aquí está lo que necesitas:
En la actividad (que extiende AppCompatActivity) declare la barra de herramientas:
Agregar barra de herramientas en el diseño xml de la actividad. Aquí configuraremos nuestros (temas sobrescritos) personalizados, notas
android:theme="@style/ThemeOverlay.AppTheme.ActionBar"
yapp:popupTheme="@style/ThemeOverlay.AppTheme.PopupMenu"
, ellos harán el truco.En su styles.xml tendrá que sobrescribir esos dos estilos para establecer colores personalizados:
Eso es todo amigos
PD: si me preguntas, diría: SÍ, todo este tema es un desastre.
fuente
Esta es la solución que utilicé después de verificar todas las respuestas
Cambiar los colores requeridos funcionará
fuente
Esta funcion funciona bien
luego para usarlo solo alimente su barra de acción y el nuevo color, es decir
fuente
Intente agregar esto en onCreate de su Actividad. Funciona en casi todas las versiones de Android.
o
fuente
Pruebe muchos métodos, en la versión baja de la API, un método factible es
<item name="actionMenuTextColor">@color/your_color</item>
y no use el espacio de nombres de Android, espero que pueda ayudarloPD:
fuente
solo pon esto en tu estilo.
<item name="android:textColorPrimary">@color/yourcolor</item>
fuente
Una buena solución es usar un SpannableStringBuilder y establecer el color de esa manera. Incluso puede usar diferentes colores en diferentes partes de la cadena, agregar imágenes, etc.
Probado con la nueva biblioteca de soporte.
Ver Android: colorear parte de una cadena usando TextView.setText ()?
fuente
Esta no es la solución recomendada, ya que voy en apis de Android aquí, pero como mi aplicación requiere cambiar el tema dinámicamente en condiciones xml no posibles aquí, así que necesito hacer esto. Pero esta solución está funcionando muy bien.
Solución:--
fuente
Para Android 5 (lollipop), deberá usar android: actionBarPopupTheme para configurar textColor para el menú de desbordamiento.
fuente
La forma más simple es:
agregue estas dos líneas a su archivo styles.xml
Reemplace el color con su color.
fuente
Puede cambiar el color de cualquier texto utilizando el atributo html
<font>
directamente en losxml
archivos. por ejemplo enstrings.xml
:fuente