请使用addDrawerListener()
替代。
removeDrawerListener()
方法,因此将add...
命名以匹配它。 - Marcin Orlowskidrawer.setDrawerListener(...);
drawer.addDrawerListener(...);
public void setDrawerListener(DrawerLayout.DrawerListener listener)
设置一个监听器以便接收抽屉事件的通知。请注意,此方法已被弃用,您应该使用
addDrawerListener(DrawerLayout.DrawerListener)
添加侦听器,并使用removeDrawerListener(DrawerLayout.DrawerListener)
删除已注册的侦听器。
onCreate()
中设置它,并且您旋转屏幕,则整个活动将被重新创建并设置新的侦听器。更复杂的情况应该考虑到(可能)没有必要为 DrawerLayout
设置超过1个侦听器。 - Johnny Five替换setDrawerListener
drawerLayout.setDrawerListener(actionBarDrawerToggle);
使用 addDrawerListener
方法
drawerLayout.addDrawerListener(actionBarDrawerToggle);
例子
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);
我想我要回答我的问题了。最新的navigationView
在选择"wrap_content"
时会在几乎18dp
的位置上生成其默认的android:layout_height
。所以,你必须选择你想要的navigationView
的android:layout_height
或者简单地将其设置为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>
无论如何,当你在导航抽屉中添加一个项目时,它的高度会自动增加。
最后,像Luxi Liu所说的那样,使用addDrawerListener()
而不是setDrawerListener()
。