【发布时间】:2013-07-20 17:23:19
【问题描述】:
在我看来,DrawerLayout 实现缺少一件事:在抽屉打开之前触发的事件。
drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) {
public void onDrawerClosed(View view) {
//...
}
public void onBeforeDrawerOpened(View drawerView) {
//...
}
public void onDrawerOpened(View drawerView) {
//...
}
};
需要它的原因是设置抽屉项的状态,例如选择、启用和类似的菜单项。将其放入 onDrawerOpened() 回调中有点工作,但在打开后更改菜单外观看起来并不正确。
我的第一个想法是扩展 ActionBarDrawerToggle 并提供新事件。我应该重新发明轮子 :-) 还是有人已经这样做了?
【问题讨论】:
-
附录:我想到在
newState == DrawerLayout.STATE_DRAGGING时使用onDrawerStateChanged(),但它似乎是双向调用的,抽屉关闭时也是如此。