Android Lollipop Diseño del material Desbordamiento Menú Icon color

Intento el nuevo Diseño de Material en un Nexus 7 y tengo el siguiente comportamiento extraño. El icono del menú de desbordamiento tiene un color diferente en el primer lanzamiento de la aplicación.

He cambiado el android:textColorPrimary color y leído este tutorial .

  1. Lanzamiento de la primera aplicación: Primer lanzamiento de la aplicación

  2. Lanzamiento de la segunda aplicación: Introduzca aquí la descripción de la imagen

Como se ve el color del color del texto principal no se establece en el primer lanzamiento. Sólo se establece si presiono el botón de inicio y vuelvo a iniciar la aplicación. Aquí está mi archivo styles.xml :

 <style name="AppBaseTheme" parent="android:Theme.Material.Light"> <item name="android:colorPrimary">#FF4444</item> <item name="android:colorPrimaryDark">#CC0000</item> <item name="android:textColorPrimary">#000000</item> </style> 

¿Puede alguien explicar, por qué se produce ese comportamiento?

He establecido android:minSdkVersion="21" y no quiero usar las bibliotecas de soporte.

He experimentado el mismo problema al ejecutar una PreferenceActivity que no puede utilizar la biblioteca appcompat-v7 en un dispositivo LOLLIPOP . Cuando esta actividad se abre por primera vez el icono de desbordamiento es siempre blanco ignorando completamente android:textColorPrimary y android:colorControlNormal . Sin embargo, las carreras subsiguientes o los cambios de orientación dan como resultado un color apropiado.

He creado una esencia que le ayudará a mitigar esto. El código enlaza un observador de disposición global a la barra de herramientas y cuando encuentra un icono de desbordamiento, lo reemplaza y desvincula al observador. Así que no lo uses en lugares donde no esperes un icono de desbordamiento porque el observador no obtendrá desacoplado en ese caso.

Enlace a la idea: https://gist.github.com/consp1racy/4b640679de553fdb3046

Sólo tiene que añadir el color de texto secundario para el menú de opciones, es decir:

 <item name="android:textColorSecondary">@color/text_color</item> 

En algunas circunstancias, el color secundario se ajusta al color primario. Todavía no sé por qué.

Añada también estos artículos:

 <item name="actionMenuTextColor">@color/white</item> <item name="android:actionMenuTextColor">@color/white</item> 

Si esto no ayuda, intente esto:

 <style name="AppBaseTheme" parent="android:Theme.Material.Light"> <item name="android:itemTextAppearance">@style/TextAppearance</item> </style> <style name="TextAppearance"> <item name="android:textColor">@android:color/white</item> </style> 

Esto funcionaría para Holo.Light.DarkActionBar

Si desea utilizar el diseño de material en los dispositivos pre-21, debe ampliar el tema Theme.AppCompat.Light.NoActionBar . Para ello, debe agregar com.android.support:appcompat-v7:21.0.0 como una dependencia de su proyecto, de esta manera podrá utilizar la barra de herramientas en su diseño.

A continuación, defina su tema en values ​​/ themes.xml :

 <style name="Theme.MyTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- colorPrimary is used for the default action bar background --> <item name="colorPrimary">@color/my_awesome_color</item> <!-- colorPrimaryDark is used for the status bar --> <item name="colorPrimaryDark">@color/my_awesome_darker_color</item> <!-- colorAccent is used as the default value for colorControlActivated which is used to tint widgets --> <item name="colorAccent">@color/accent</item> <!-- You can also set colorControlNormal, colorControlActivated colorControlHighlight & colorSwitchThumbNormal. --> </style> 

Y tu la barra de herramientas en tu diseño / my_activity.xml :

 <android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/my_awesome_toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" /> 

Usted tiene attrs opcional para definir el tema y popupTheme también:

 app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 

Chris Banes escribió un buen artículo sobre esto que debe leer https://chris.banes.me/2014/10/17/appcompat-v21/

He leído en los comentarios de las preguntas que están utilizando eclipse, recomiendo encarecidamente para utilizar android studio + gradle y no eclipse.

Sólo android:theme="@style/ThemeOverlay.AppCompat.Dark" añadir android:theme="@style/ThemeOverlay.AppCompat.Dark" a la barra de herramientas

 <android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/my_awesome_toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" android:theme="@style/ThemeOverlay.AppCompat.Dark android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" /> 

El icono del menú de desbordamiento será blanco ahora 🙂

  public static void setOverflowButtonColor(final Activity activity, final int color) { final String overflowDescription = activity.getString(R.string.abc_action_menu_overflow_description); final ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView(); final ViewTreeObserver viewTreeObserver = decorView.getViewTreeObserver(); viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { final ArrayList<View> outViews = new ArrayList<View>(); decorView.findViewsWithText(outViews, overflowDescription, View.FIND_VIEWS_WITH_CONTENT_DESCRIPTION); if (outViews.isEmpty()) { return; } AppCompatImageView overflow = (AppCompatImageView) outViews.get(0); overflow.setColorFilter(color); removeOnGlobalLayoutListener(decorView, this); } }); } 

Utilizar este método y

 setOverflowButtonColor(this, getResources().getColor(R.color.hot_pink)); 

Aquí está el color hot_pink.

  • Android 9 patch xml dibujable
  • Error: (47) Error al analizar XML: prefijo no enlazado en la brecha telefónica de Android
  • No puedo desplazar mi diseño en multi-ventana en Nougat 7.0
  • Dimens.xml en la carpeta de valores de 7 "y 10" tableta, ¿cómo?
  • ¿Qué es Android SyncAdapter contentAuthority y accountType?
  • Centrar un botón en un diseño Lineal
  • Escala de un recurso dibujable en XML (Android)
  • "El inicio de la etiqueta no está cerrado" al comentar dentro de la etiqueta de inicio y fin del elemento XML
  • Cómo hacer navegación personalizada ver animaciones como ésta
  • La vista de vídeo no es de pantalla completa en modo horizontal
  • El diseño aparece diferente en la disposición gráfica y en el dispositivo real
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.