web-dev-qa-db-fra.com

La méthode setDrawerListener est obsolète

Pendant que je fais quelque chose sur mon application, je constate que le tiroir de navigation de mon application a réduit sa taille. Mais je ne fais rien à ce sujet.

navigation drawer

Ensuite, après avoir vérifié le code, j'ai constaté que setDrawerListener était obsolète. Est-ce que quelqu'un a une solution à cela? Toute aide fera l'affaire. Merci d'avance!

drawerLayout.setDrawerListener(actionBarDrawerToggle);
215
david glorioso

Utilisez addDrawerListener() à la place.

727
Luxi Liu

Remplacer:

drawer.setDrawerListener(...);

avec

drawer.addDrawerListener(...);

public void setDrawerListener(DrawerLayout.DrawerListener listener) Définit un auditeur pour qu'il soit averti des événements du tiroir.

Notez que cette méthode est obsolète et vous devez utiliser addDrawerListener(DrawerLayout.DrawerListener) pour ajouter un écouteur et removeDrawerListener(DrawerLayout.DrawerListener) pour supprimer un écouteur enregistré.

80
Jzapata

Remplacez setDrawerListener

drawerLayout.setDrawerListener(actionBarDrawerToggle);

avec addDrawerListener

drawerLayout.addDrawerListener(actionBarDrawerToggle);

exemple

  DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                    this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
            assert drawer != null;
            drawer.addDrawerListener(toggle);
            toggle.syncState();

            NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
            assert navigationView != null;
            navigationView.setNavigationItemSelectedListener(this);
26
sivaBE35

Je suppose que je vais répondre à ma question. Le dernier navigationView produit sa valeur par défaut Android:layout_height à presque 18dp lorsque vous choisissez "wrap_content". Vous devez donc choisir le Android:layout_height que vous voulez pour votre navigationView ou tout simplement créer Android:layout_height="match_parent".

<Android.support.design.widget.NavigationView
    Android:layout_width="320dp"
    Android:layout_height="550dp"
    Android:id="@+id/navigation_view_admin"
    Android:layout_gravity="start">

</Android.support.design.widget.NavigationView>

Quoi qu'il en soit, sa hauteur augmente automatiquement lorsque vous ajoutez un élément dans le tiroir de navigation.

Enfin, utilisez addDrawerListener() au lieu de setDrawerListener() comme l'a dit Luxi Liu.

21
david glorioso