studio icono example desplegable boton barra bar agregar acciones android android-actionbar

icono - menu android studio



Cómo diseñar los elementos del menú en una barra de acción de Android (8)

Ha habido muchas preguntas sobre el estilo en las barras de acción, pero las que he encontrado están relacionadas con el diseño de las pestañas o tienen respuestas que no me funcionan.

La pregunta es realmente bastante simple. Quiero poder cambiar el estilo del texto (incluso solo el color) de los elementos del menú en la barra de acciones.

He leído esto: http://android-developers.blogspot.com/2011/04/customizing-action-bar.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+blogspot%2FhsDu+%28Android+Developers+Blog%29

Y esta pregunta: Estilo una barra de acción en Android Honeycomb

De lo cual he preparado una aplicación de prueba que estoy usando para intentar que los elementos del menú cambien. Utiliza todos los valores predeterminados para una aplicación creada en el complemento Eclipse de Android, a excepción de lo siguiente.

Un archivo de estilos:

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="MyAppTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:actionBarStyle">@style/MyActionBar</item> </style> <style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:titleTextStyle">@style/MyActionBar.TitleTextStyle</item> <item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item> </style> <style name="MyActionBar.TitleTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">#F0F</item> <item name="android:textStyle">bold</item> <item name="android:textSize">24dip</item> </style> <style name="MyActionBar.MenuTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">#F0F</item> <item name="android:textStyle">bold</item> <item name="android:textSize">24dip</item> </style> </resources>

Un menú para la barra de acción:

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:showAsAction="always|withText" android:icon="@android:drawable/ic_menu_edit" android:id="@+id/menu_item1" android:title="menu_item1"></item> <item android:showAsAction="always|withText" android:icon="@android:drawable/ic_menu_edit" android:id="@+id/menu_item2" android:title="menu_item2"></item> </menu>

La actividad principal:

public class Main extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } /** * Create the options menu that is shown on the action bar */ @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_menu, menu); return true; } }

La aplicación se compila y ejecuta. El estilo del texto del título de la barra de acción funciona a la perfección (es ese hermoso tono rosado # F0F que he definido). Los elementos del menú no cambian pero aparecen con un estilo predeterminado (holo light).

Qué estoy haciendo mal ?


BottomNavigationView navigation = (BottomNavigationView) findViewById (R.id.navigation);

TextView textView = (TextView) navigation.findViewById(R.id.navigation_home).findViewById(R.id.smallLabel); textView.setTypeface(Typeface.DEFAULT_BOLD); textView = (TextView) navigation.findViewById(R.id.navigation_home).findViewById(R.id.largeLabel); textView.setTypeface(Typeface.DEFAULT_BOLD);


Creo que el código a continuación

<item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>

debe estar en la sección MyAppTheme .


En lugar de tener el elemento android:actionMenuTextAppearance debajo del estilo de la barra de acción, android:actionMenuTextAppearance en el tema de la aplicación.


Lo hice de esta manera:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="actionMenuTextAppearance">@style/MenuTextAppearance</item> <item name="android:actionMenuTextAppearance">@style/MenuTextAppearance</item> <item name="actionMenuTextColor">@color/colorAccent</item> </style> <style name="MenuTextAppearance" > <item name="android:textAppearance">@android:style/TextAppearance.Large</item> <item name="android:textSize">20sp</item> <item name="android:textStyle">bold</item> </style>


Sé que es una publicación anterior, pero por si acaso alguien está buscando aquí. Agregué esto a mi style.xml y funcionó para mí.

<!-- This is the main theme parent --> <style name="MyTabStyle"> <item name="android:actionBarTabTextStyle">@style/MyTabTextStyle</item> </style> <style name="MyTabTextStyle" parent="@android:style/Widget.ActionBar.TabText"> <item name="android:textAppearance">@android:style/TextAppearance.Medium</item> <item name="android:textSize">14sp</item> <item name="android:textStyle">bold</item> <item name="android:textColor">@color/pressed_skylogtheme</item> </style>


Supongo que también debe diseñar las vistas que se generan a partir de la información del menú en su onCreateOptionsMenu (). El estilo que aplicó hasta ahora está funcionando, pero dudo que los elementos del menú, cuando se representan con texto, usen un estilo que sea el mismo que el de la barra de ActionBar.

Es posible que desee mirar Menu.getActionView () para obtener la vista de la acción del menú y luego ajustarla en consecuencia.


Tienes que cambiar

<style name="MyActionBar.MenuTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">

a

<style name="MyActionBar.MenuTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Menu">

también. Esto funciona para mí


La respuesta de Chris está trabajando para mí ...

Mi archivo values-v11 / styles.xml:

<resources> <style name="LightThemeSelector" parent="android:Theme.Holo.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/ActionBar</item> <item name="android:editTextBackground">@drawable/edit_text_holo_light</item> <item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item> </style> <!--sets the point size to the menu item(s) in the upper right of action bar--> <style name="MyActionBar.MenuTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textSize">25sp</item> </style> <!-- sets the background of the actionbar to a PNG file in my drawable folder. displayOptions unset allow me to NOT SHOW the application icon and application name in the upper left of the action bar--> <style name="ActionBar" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:background">@drawable/actionbar_background</item> <item name="android:displayOptions"></item> </style> <style name="inputfield" parent="android:Theme.Holo.Light"> <item name="android:textColor">@color/red2</item> </style> </resources>