我有一个应用程序使用导航抽屉提供位置列表。在抽屉中,有几个选项(如选择国家,城市等),用户可以在主要活动中显示相应列表之前设置。安卓在抽屉里关闭监听器
用户关闭抽屉时是否有任何可能刷新列表,或者有其他解决方法?我试图寻找教程,但没有发现关于这个抽屉的关闭监听器。 任何建议将有帮助,谢谢!
我有一个应用程序使用导航抽屉提供位置列表。在抽屉中,有几个选项(如选择国家,城市等),用户可以在主要活动中显示相应列表之前设置。安卓在抽屉里关闭监听器
用户关闭抽屉时是否有任何可能刷新列表,或者有其他解决方法?我试图寻找教程,但没有发现关于这个抽屉的关闭监听器。 任何建议将有帮助,谢谢!
当您设定ActionBarDrawerToggle
可以“落实”的onDrawerClosed
和onDrawerOpened
回调。从Docs请看下面的例子:
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) {
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
// Do whatever you want here
}
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
// Do whatever you want here
}
};
// Set the drawer toggle as the DrawerListener
mDrawerLayout.addDrawerListener(mDrawerToggle);
编辑:现在setDrawerListener已过时,使用addDrawerListener代替。
如果您使用ActionBar,reVerse答案也是正确的。如果你只是直接使用DrawerLayout,可以将DrawerListener添加到它:
View drawerView = findViewById(R.id.drawer_layout);
if (drawerView != null && drawerView instanceof DrawerLayout) {
mDrawer = (DrawerLayout)drawerView;
mDrawer.setDrawerListener(new DrawerListener() {
@Override
public void onDrawerSlide(View view, float v) {
}
@Override
public void onDrawerOpened(View view) {
}
@Override
public void onDrawerClosed(View view) {
// your refresh code can be called from here
}
@Override
public void onDrawerStateChanged(int i) {
}
});
}
按kit's comment,addDrawerListener()
应该现在setDrawerListener()
已弃用使用。
如果有人看到这个,不推荐使用'setDrawerListener'。现在应该使用'addDrawerListener' – kit 2016-05-08 19:41:50
OMG,我完全忘了这个!感谢提醒! – rendyhihi 2014-09-28 07:35:16