programacion - personalizar toolbar android studio
Elementos de acción de la barra de acción que no se muestran (4)
Esta pregunta ya tiene una respuesta aquí:
- Actionbar no se muestra con AppCompat 3 respuestas
Tengo un código muy simple, pero un problema que no puedo resolver incluso después de una larga búsqueda en Google. Quiero tener algunos elementos de acción en mi barra de acción, pero cada vez que ejecuto la aplicación, todo lo que veo es una barra de acción con el logotipo de la aplicación y el título, pero sin elementos de acción .
Sería genial, si pudieras ayudarme, probablemente me esté perdiendo la cosa más obvia;)
Ese es el método en mi ActionBarActivity:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
Y este es el archivo .xml relevante para ActionBar (llamado main_activity_actions.xml):
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="always" />
<item android:id="@+id/action_compose"
android:icon="@drawable/ic_action_compose"
android:title="@string/action_compose"
android:showAsAction="always"/>
</menu>
Aquí tienes, necesitas agregar el menú en tu xml así:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_settings"
android:orderInCategory="0"
android:showAsAction="always"
android:icon="@drawable/menu">
<menu>
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="always" />
<item android:id="@+id/action_compose"
android:icon="@drawable/ic_action_compose"
android:title="@string/action_compose"
android:showAsAction="always"/>
</menu>
</item>
</menu>
Esto se debe a que si usa la biblioteca AppBat ActionBar de soporte y ActionBarActivity, debe crear sus menús de una forma diferente a la forma estándar de crear menús XML en ActioBarSherlock o la ActionBar predeterminada.
Así que prueba este código:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
app:showAsAction="always" />
<item android:id="@+id/action_compose"
android:icon="@drawable/ic_action_compose"
android:title="@string/action_compose"
app:showAsAction="always"/>
</menu>
e informe si esto funciona.
Nota: ¡compruebe el prefijo extra xmlns:app
que debería usarse en su lugar!
Prueba esto:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return true;
}
Puede estar seguro de que no está utilizando un estilo que hace que sus elementos de acción sean invisibles.
Por ejemplo, si estás utilizando "android: Theme.Holo.Light.DarkActionBar" obtienes una barra de acción negra para que no puedas ver tus elementos negros.
Cambia a "android: Theme.Holo.Light" y aparecerán.
Busque en el archivo (por ejemplo) res / values-v14 / styles.xml