Home » Android » android – Method setDrawerListener is deprecated

android – Method setDrawerListener is deprecated

Posted by: admin March 10, 2020 Leave a comment

Questions:

While I’m doing something on my app, I see that the navigation drawer on my app reduced its size. But I’m not doing anything on that.

navigation drawer

Then, after checking the code, I saw that setDrawerListener is deprecated. Does anyone has a solution to this?

drawerLayout.setDrawerListener(actionBarDrawerToggle);
How to&Answers:

Use addDrawerListener() instead.

Answer:

Replace:

drawer.setDrawerListener(...);

with

drawer.addDrawerListener(...);

public void setDrawerListener(DrawerLayout.DrawerListener listener) Sets a listener to be notified of drawer events.

Note that this method is deprecated and you should use addDrawerListener(DrawerLayout.DrawerListener) to add a listener and removeDrawerListener(DrawerLayout.DrawerListener) to remove a registered listener.

Answer:

Replace setDrawerListener

drawerLayout.setDrawerListener(actionBarDrawerToggle);

with addDrawerListener

drawerLayout.addDrawerListener(actionBarDrawerToggle);

example

  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);

Answer:

I guess I’m gonna answer my question. The latest navigationView produces its default android:layout_height at almost 18dp when you choose "wrap_content". So, you must choose the android:layout_height that you want for your navigationView or simply make 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>

Anyways, it’s height automatically increases when you add an item in the navigation drawer.

Lastly, Use addDrawerListener() instead of setDrawerListener() as Luxi Liu said.