方法setDrawerListener已弃用

dav*_*oso 219 android drawerlayout deprecation-warning

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

导航抽屉

然后,在检查代码后,我看到不推荐使用setDrawerListener.有人有解决方案吗?任何帮助都可以.先感谢您!

drawerLayout.setDrawerListener(actionBarDrawerToggle);
Run Code Online (Sandbox Code Playgroud)

Lux*_*Liu 735

addDrawerListener()改用.

  • 至少他们可以将'use'addDrawerListener'代替`包含在已弃用的消息中! (21认同)
  • 为什么.简单,为什么. (11认同)
  • 为什么他们这样做 (9认同)
  • 用于API一致性.他们添加了`removeDrawerListener()`所以`add ...`被命名为匹配 (6认同)

Jza*_*ata 80

更换:

drawer.setDrawerListener(...);
Run Code Online (Sandbox Code Playgroud)

drawer.addDrawerListener(...);
Run Code Online (Sandbox Code Playgroud)

public void setDrawerListener(DrawerLayout.DrawerListener listener) 设置一个侦听器以通知抽屉事件.

请注意,不推荐使用此方法,您应该使用addDrawerListener(DrawerLayout.DrawerListener)添加侦听器和removeDrawerListener(DrawerLayout.DrawerListener)删除已注册的侦听器.

  • 我们应该在哪里取下抽屉听众,这是必要的吗? (18认同)

siv*_*E35 27

更换 setDrawerListener

drawerLayout.setDrawerListener(actionBarDrawerToggle);
Run Code Online (Sandbox Code Playgroud)

addDrawerListener

drawerLayout.addDrawerListener(actionBarDrawerToggle);
Run Code Online (Sandbox Code Playgroud)

  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);
Run Code Online (Sandbox Code Playgroud)


dav*_*oso 21

我想我会回答我的问题.最新navigationView产生的默认值android:layout_height几乎18dp在您选择时"wrap_content".因此,您必须选择android:layout_height您想要的navigationView或简单地制作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>
Run Code Online (Sandbox Code Playgroud)

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

最后,使用addDrawerListener()而不是setDrawerListener()像鲁西刘说的那样.

  • 然后可能会修复你的问题的标题 (7认同)
  • 因为那不是我的主要问题.你不能看到吗?请先阅读我的问题......这不仅仅是被弃用的东西, (6认同)