Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cambiar el color del botón de desbordamiento en ActionBar

¿Es posible cambiar el color del botón de desbordamiento (3 puntos verticales) en la barra de acción? Si es así, ¿cómo hacemos eso? No encontré ningún estilo para el botón de desbordamiento.

Gracias

  • Android ActionBar - Presiona la vista personalizada hasta la parte inferior de la pantalla
  • ¿Cómo puedo abrir el SearchView mediante programación?
  • Cómo forzar el icono de desbordamiento de barra de acción para mostrar
  • Configuración ActionMode Background programmatically
  • "No se encontró ningún identificador de recurso para el atributo 'showAsAction' en el paquete 'android'"
  • Cómo cambiar el color de las pestañas de navegación de ActionBar?
  • Cómo personalizar Android ActionBar para mostrar una vista personalizada antes de las pestañas?
  • Acción Elementos que no se muestran en ActionBar con showAsAction = "ifRoom"
  • 7 Solutions collect form web for “Cambiar el color del botón de desbordamiento en ActionBar”

    Puede cambiar la imagen que se utiliza con la siguiente declaración de estilo.

    <style name="MyCustomTheme" parent="style/Theme.Holo"> <item name="android:actionOverflowButtonStyle">@style/MyCustomTheme.OverFlow</item> </style> <style name="MyCustomTheme.OverFlow"> <item name="android:src">@drawable/my_overflow_image</item> </style> 

    Y si está usando ActionBarSherlock, aquí es cómo hacerlo

     <style name="MyCustomTheme" parent="style/Theme.Sherlock"> <item name="android:actionOverflowButtonStyle">@style/MyCustomTheme.OverFlow</item> <item name="actionOverflowButtonStyle">@style/MyCustomTheme.OverFlow</item> </style> <style name="MyCustomTheme.OverFlow"> <item name="android:src">@drawable/my_overflow_image</item> </style> 

    La respuesta de XGouchet es genial, pero sólo quería añadir que si heredas de un estilo existente obtendrás el relleno estándar, el estado seleccionado, etc.

     <style name="MyCustomTheme.OverFlow" parent="Widget.Sherlock.ActionButton.Overflow"> <item name="android:src">@drawable/title_moreicon</item> </style> 

    Cree este método:

     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); } }); } 

    Y luego lo llaman así:

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

    Si está utilizando AppCompat, podría derivar un nuevo estilo personalizado con el atributo android:textColorSecondary establecido en el color requerido y utilizarlo como tema para su barra de herramientas. Android: Cambiar el color de texto de la barra de herramientas y el color del icono de desbordamiento

    Poner imágenes no es una gran idea, porque si puedes cambiarlo cambiando colores solo entonces no necesitas usar una imagen extra. Los puntos del menú seleccionan el color de textColorPrimary, así que en vez de escribir varias líneas esta sola línea fijará su problema. Sólo un pequeño problema es que este color se aplicará a la textcolor de su menú de desbordamiento también, y muchos otros lugares de curso 🙂

    Otra opción programática:

      Drawable drawable = toolbar.getOverflowIcon(); if(drawable != null) { drawable = DrawableCompat.wrap(drawable); DrawableCompat.setTint(drawable.mutate(), getResources().getColor(R.color.thecolor)); toolbar.setOverflowIcon(drawable); } 

    ¡Espero eso ayude!

     <style name="MyCustomTheme" parent="@style/Theme.AppCompat.Light"> <item name="actionOverflowButtonStyle">@style/OverflowMenuButtonStyle</item> </style> <style name="OverflowMenuButtonStyle" parent="Widget.AppCompat.ActionButton.Overflow"> <item name="android:src">@drawable/quantum_ic_more_vert_white_24</item> </style> 

    Tenga en cuenta que esto es diferente a la respuesta de XGouchet al eliminar el espacio de nombres de Android. La respuesta de XGouchet sólo funciona para Lollipop y dispositivos superiores mientras que el mío funciona para todos los dispositivos API 7+.

    Ref: Custom AppCompat Theme no cambia el icono de desbordamiento en dispositivos antiguos

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.