我实施了一个带有两个动作栏抽屉的活动。
现在我在操作栏中有两个按钮显示这些抽屉,它们工作正常。如果已经打开,他们甚至会关闭另一个。
这些抽屉旨在用作列表视图的过滤器(城市和类别),我的想法是监听OnClose事件,这样我就可以获取选中的项目并过滤列表。
使用" onDrawerClosed"我可以很容易地做到这一点,但问题是当抽屉通过滑动显示时,事件不会被触发。
我当时正在处理" onDrawerSlide"最后得到了这段代码:
void initDrawer() {
drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.drawable.ic_home_up, R.string.app_name,
R.string.app_name) {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
if (slideOffset == 0) {
//if (!drawerLayout.isDrawerOpen(drawerView)) {
outputManager.showToast("Closed ");
//drawerClosed(drawerView);
//}
invalidateOptionsMenu(); // calls onPrepareOptionsMenu()
}
super.onDrawerSlide(drawerView, slideOffset);
}
public void onDrawerClosed(View drawerView) {
// getActionBar().setTitle(mTitle);
// calling onPrepareOptionsMenu() to show action bar icons
invalidateOptionsMenu();
drawerClosed(drawerView);
}
public void onDrawerOpened(View drawerView) {
// getActionBar().setTitle(mDrawerTitle);
// calling onPrepareOptionsMenu() to hide action bar icons
invalidateOptionsMenu();
}
};
drawerLayout.setDrawerListener(drawerToggle);
}
它一直在激活事件(我认为它已经多次被触发直到完成滑动),所以我检查了slideOffset是否为0.它既不起作用,其中一个滑块有效,但另一个没有&# 39;不要发生任何事件。
有什么想法吗?也许我可以阻止滑动并允许仅通过按钮显示抽屉,但是如何?
答案 0 :(得分:0)
最后,我拆下了第二个抽屉,然后想出了一个不同的方法。我想我试图以一种不适合的方式使用它。