J'utilise le nouveau support de la barre d'action et toutes mes vues d'action sont affichées en débordement et non sous forme d'icônes dans la barre. Mon application est pour 7+ API.
AccueilActivité:
public class HomeActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(R.string.app_name);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.home, menu);
return true;
}
}
home.xml
<item
Android:id="@+id/action_settings"
Android:orderInCategory="100"
Android:showAsAction="never"
Android:title="@string/action_settings"/>
<item
Android:id="@+id/action_browse"
Android:orderInCategory="100"
Android:showAsAction="never"
Android:title="@string/title_activity_browse"/>
<item
Android:id="@+id/action_search"
Android:actionViewClass="Android.widget.SearchView"
Android:icon="@Android:drawable/ic_menu_search"
Android:showAsAction="ifRoom|collapseActionView"
Android:title="@string/text_search"/>
<item
Android:id="@+id/action_scan"
Android:icon="@drawable/action_scan"
Android:showAsAction="always"
Android:title="@string/title_activity_browse"/>
Je déploie sur Nexus 7 avec 4.3 et sur LGP500 avec 2.3.3 et sans icônes. J'ai également ajouté Android: theme = "@ style/Theme.AppCompat.Light.DarkActionBar" sur le manifeste et mon projet fait correctement référence à Android-support-v7-appcompat comme décrit dans la documentation officielle.
vous devez définir vos fichiers de ressources menu
avec également les attributs de la bibliothèque de support.
Pour implémenter le support arrière, il les lit au lieu de ceux définis dans l'ancienne version Android version.
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:yourapp="http://schemas.Android.com/apk/res-auto" >
<item
Android:id="@+id/action_settings"
Android:orderInCategory="100"
Android:showAsAction="never"
yourapp:showAsAction="never"
Android:title="@string/action_settings"/>
<item
Android:id="@+id/action_browse"
Android:orderInCategory="100"
Android:showAsAction="never"
yourapp:showAsAction="never"
Android:title="@string/title_activity_browse"/>
<item
Android:id="@+id/action_search"
Android:actionViewClass="Android.support.v7.widget.SearchView"
Android:icon="@Android:drawable/ic_menu_search"
Android:showAsAction="ifRoom|collapseActionView"
yourapp:showAsAction="ifRoom|collapseActionView"
yourapp:actionViewClass="Android.support.v7.widget.SearchView"
Android:title="@string/text_search"/>
<item
Android:id="@+id/action_scan"
Android:icon="@drawable/action_scan"
Android:showAsAction="always"
yourapp:showAsAction="always"
Android:title="@string/title_activity_browse"/>
</menu>
[~ # ~] nb [~ # ~] rappelez-vous que pour la classe SearchView a changé . il est maintenant utilisé celui de la bibliothèque de support, vous devez donc également mettre à jour votre code dans onCreateOptionsMenu ()
EDIT: ici est un très bon tutoriel sur la façon de migrer d'ActionBarSherlok vers AppCompat