228

当我在我的应用程序上做某事时,我看到我的应用程序上的导航抽屉减小了它的大小。但我没有对此做任何事情。

导航抽屉

然后,在检查代码后,我看到 setDrawerListener 已被弃用。有人对此有解决方案吗?

drawerLayout.setDrawerListener(actionBarDrawerToggle);
4

5 回答 5

760

改为使用addDrawerListener()

于 2016-02-26T04:30:26.527 回答
87

代替:

drawer.setDrawerListener(...);

drawer.addDrawerListener(...);

public void setDrawerListener(DrawerLayout.DrawerListener listener)设置要通知抽屉事件的侦听器。

请注意,此方法已弃用,您应该使用它addDrawerListener(DrawerLayout.DrawerListener)来添加侦听removeDrawerListener(DrawerLayout.DrawerListener)器并删除已注册的侦听器。

于 2016-02-28T03:46:15.277 回答
29

代替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);
于 2016-05-18T12:14:51.143 回答
22

我想我会回答我的问题。最新版本几乎在您选择时navigationView产生其默认值。因此,您必须选择您想要的或简单地制作。android:layout_height18dp"wrap_content"android:layout_heightnavigationViewandroid: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>

无论如何,当您在导航抽屉中添加项目时,它的高度会自动增加。

最后,使用addDrawerListener()代替setDrawerListener()刘璐西说的。

于 2016-02-27T07:06:21.463 回答
0

官方 Android 开发者文档中在此处输入图像描述

于 2021-10-03T20:28:29.343 回答