当导航抽屉打开或关闭时,我可以收听吗(例如:像按钮 onclick 一样的侦听器)?

问题描述:

我想在导航抽屉打开时调用一些方法&关闭.我该如何收听(例如按钮的 onclick 侦听器)?

I want to call some methods when Navigation Drawer is opened & closed. How can I listen to it (like button's onclick listener) ?

我知道我们可以检查 (mDrawer.isDrawerOpen(Gravity.LEFT)) 或 ((mDrawer.isDrawerClose(Gravity.LEFT))).

I know we can check (mDrawer.isDrawerOpen(Gravity.LEFT)) or ((mDrawer.isDrawerClose(Gravity.LEFT))).

提前致谢.

是的,有四种抽象方法可以用作侦听器

Yeah there are four abstract methods that you can use as listeners

public abstract void onDrawerClosed (View drawerView)
public abstract void onDrawerOpened (View drawerView)
public abstract void onDrawerSlide (View drawerView, float slideOffset)
public abstract void onDrawerStateChanged (int newState)

可以这样使用

ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
        R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) {
    public void onDrawerClosed(View view) {
        super.onDrawerClosed(view);
        // Do whatever you want here
    }
    public void onDrawerOpened(View drawerView) {
        super.onDrawerOpened(drawerView);
        // Do whatever you want here
    }
};
mDrawerLayout.addDrawerListener(mDrawerToggle);

复制自 http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.DrawerListener.html

更新setDrawerListener 方法在 API 级别 24.1.0 中已弃用.所以使用 addDrawerListener()

UPDATE setDrawerListener method was deprecated in API level 24.1.0. so use addDrawerListener()