19 votes

Icône du tiroir de navigation ne s'affiche pas (actionbar Sherlock)

Avoir le tiroir de navigation fonctionnant avec la barre d'action Sherlock mais j'ai du mal à obtenir l'icône à 3 lignes (comme Gmail) au lieu du bouton normal de retour "<". Voici mon code ic_drawer est l'icône à 3 lignes que utilise Gmail

getSupportActionBar().setIcon(R.drawable.myIcon);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowTitleEnabled(true);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawer,
            R.drawable.ic_drawer, R.string.menu_open, R.string.menu_close) {
        public void onDrawerClosed(View view) {

            super.onDrawerClosed(view);
        }

        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
        }
    };

1voto

Benoit Duffez Points 2301

Avez-vous ajouté le basculeur à votre tiroir?

mDrawerLayout.setDrawerListener(mDrawerToggle);

0voto

Daniel De León Points 2842

Cela se produit lorsque vous exécutez votre application sur Android < 3, même les applications Google en souffrent également.

Mais il existe un projet qui résout ce problème : https://github.com/nicolasjafelle/SherlockNavigationDrawer

0voto

zudo1337 Points 21

J'ai mis cela et ça fonctionne.

    @Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    // Synchroniser l'état du bascule après que onRestoreInstanceState s'est produit.
    mDrawerToggle.syncState();
}

0voto

Bruce Points 38

La méthode de @zudo1337 a résolu mon problème.

@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    // Synchroniser l'état du bascule après que onRestoreInstanceState ait eu lieu.
    mDrawerToggle.syncState();
}

0voto

user3122993 Points 11

J'ai ajouté cette ligne avant d'appeler setDrawerListener.

mDrawerLayout.post(new Runnable() {
@Override public void run() {
 mDrawerToggle.syncState();
}
});

J'espère que cela résoudra le problème sur les appareils plus anciens.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X