我想打開導航抽屜時打開一些方法&已關閉。我怎樣才能聽(像按鈕的onclick監聽器)?當導航抽屜打開或關閉時(例如:按鈕onclick等聽衆),我可以聽嗎?
我知道我們可以檢查(mDrawer.isDrawerOpen(Gravity.LEFT)
)或((mDrawer.isDrawerClose(Gravity.LEFT))
)。
在此先感謝。
我想打開導航抽屜時打開一些方法&已關閉。我怎樣才能聽(像按鈕的onclick監聽器)?當導航抽屜打開或關閉時(例如:按鈕onclick等聽衆),我可以聽嗎?
我知道我們可以檢查(mDrawer.isDrawerOpen(Gravity.LEFT)
)或((mDrawer.isDrawerClose(Gravity.LEFT))
)。
在此先感謝。
呀還有,你可以爲聽衆
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.setDrawerListener(mDrawerToggle);
抄自http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.DrawerListener.html
您可以通過使用ActionBarDrawerToggle通過使用這段代碼知道:
ActionBarDrawerToggle drawerToggle = new android.support.v7.app.ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
}
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}
};
mDrawer.setDrawerListener(drawerToggle);
有在抽象內部類的 'DrawerLayout' 級 'DrawerListener'
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)
有用的實施例提供了4種抽象方法:
((DrawerLayout) findViewById(R.id.drawer_layout)).addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(@NonNull View drawerView, float slideOffset) {
// Whatever you want
}
@Override
public void onDrawerOpened(@NonNull View drawerView) {
// Whatever you want
}
@Override
public void onDrawerClosed(@NonNull View drawerView) {
// Whatever you want
}
@Override
public void onDrawerStateChanged(int newState) {
// Whatever you want
}
});
可以檢查此爲更詳細的信息HERE
setDrawerListener在API級別23.2.0中已棄用。使用addDrawerListener – fmog