Cómo diseñar los elementos de menú en una barra de acción de Android
Ha habido muchas preguntas sobre el estilo en las barras de acción, pero las que he encontrado están relacionadas con el estilo de las pestañas, o tienen respuestas que no funcionan para mí.
La pregunta es muy simple. Quiero ser capaz de cambiar el estilo de texto (incluso el color) de los elementos del menú en la barra de acción.
- Cómo mostrar elementos de menú desbordamiento en la barra de acciones de Android
- Cambiar los iconos en ActionBar dinámicamente
- ¿Cómo configurar la altura de la barra de herramientas de Android?
- Quitar Icono pero tener HomeAsUp en ActionBar
- Establecer título para la barra de acción contextual
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 de una barra de acción en Android Honeycomb
De lo que he puesto juntos una aplicación de prueba que estoy utilizando para tratar de obtener los elementos del menú para cambiar. Utiliza todos los valores predeterminados para una aplicación creada en el complemento android de eclipse, excepto por 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 compila y ejecuta. El estilo de la barra de acción de texto título funciona perfectamente (es que la sombra de color rosa # F0F he definido). Los elementos de menú no cambian aparecen pero con el estilo predeterminado (luz holo).
Qué estoy haciendo mal ?
- Dot (.) En lugar de la ficha Swipe
- El logotipo de Actionbar se convierte en el icono de la aplicación en un ActionView expandido
- ¿Hay alguna forma de detectar la altura del androide actionBar antes de mostrarlo?
- No se pudo bloquear la superficie
- Android cuando regresa a la actividad se destruye y no se reanuda
- RequestFeature con barra de acción
- Android cómo diseñar un SearchView en Actionbar?
- Cómo cambiar el relleno o el margen del icono o logotipo de la barra de acción en el tema XML?
En lugar de tener el elemento android:actionMenuTextAppearance
bajo el estilo de barra de acción, muévalo debajo del tema de la aplicación.
Sé que es un viejo post, pero por si alguien está buscando aquí. He añadido 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>
Creo que el código de abajo
<item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
Debe estar en la sección MyAppTheme
.
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">
así como. Esto funciona para mí.
Chris respuesta está trabajando para mí …
Mis valores-v11 / styles.xml archivo:
<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>
Mi conjetura es que usted tiene que también estilo las vistas que se generan de la información del menú en su onCreateOptionsMenu (). El estilo aplicado hasta ahora está funcionando, pero dudo que los elementos del menú, cuando se procesen con texto, usen un estilo que sea el mismo que la parte del título de ActionBar.
Es posible que desee ver Menu.getActionView () para obtener la vista de la acción del menú y, a continuación, ajustarlo en consecuencia.
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>
- Android Studio "Estructura del proyecto" no viene correctamente
- Android Google Maps v2: ¿Cómo agregar un marcador con un fragmento de varias líneas?