Je rétroporte mon application vers API7 avec AppCompat et j'ai un problème avec la barre d'actions.
Lorsque j'utilise FragmentActivity
, la barre d'action est affichée sur mon téléphone (API18), mais avec ActionBarActivity
elle apparaît comme le menu d'options en appuyant sur le bouton de menu.
Sur l'émulateur avec API7, la barre d'action est toujours affichée comme un menu d'options.
Des idées?
Utilisez l'espace de nom compat pour vos éléments de menu comme celui-ci:
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:compat="http://schemas.Android.com/apk/res-auto" >
<item Android:id="@+id/action_whatever"
Android:icon="@drawable/ic_action_whatever"
Android:title="@string/whatever"
compat:showAsAction="ifRoom" />
</menu>
Lié à n doublon qui pointe vers ce post , j'ai eu du mal à faire apparaître mes boutons comme des éléments d'action au lieu d'éléments de débordement, malgré le fait que showAsAction soit défini sur always
. J'ai réussi à le contraindre en étendant mon activité avec Activity
au lieu de ActionBarActivity
. Selon cette réponse , cela est acceptable si vous n'avez pas besoin de prendre en charge les niveaux d'API inférieurs à 11.
...extends ActionBarActivity
:
...extends Activity
:
Je débogue avec Doogee Valencia Y100Pro, et le menu comme "trois petits carrés" n'est pas visible, mais quand j'ai étendu mon MainActivity avec Android.support.v7.app.ActionBarActivity
, puis j'obtiens le menu texte/icône dans la barre d'actions. Suivant capture d'écran et menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" xmlns:app="http://schemas.Android.com/apk/res-auto">
<item
Android:id="@+id/action_update"
Android:icon="@drawable/ic_refresh"
Android:title="@string/action_update"
app:showAsAction="always"/>
<item Android:id="@+id/action_settings"
Android:title="@string/action_settings"
app:showAsAction="ifRoom"/>
</menu>