滑动时ActionBarDrawerToggle事件onClose

时间:2015-02-12 12:12:24

标签: android android-actionbar slidingdrawer

我实施了一个带有两个动作栏抽屉的活动。

现在我在操作栏中有两个按钮显示这些抽屉,它们工作正常。如果已经打开,他们甚至会关闭另一个。

这些抽屉旨在用作列表视图的过滤器(城市和类别),我的想法是监听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;不要发生任何事件。

有什么想法吗?也许我可以阻止滑动并允许仅通过按钮显示抽屉,但是如何?

1 个答案:

答案 0 :(得分:0)

最后,我拆下了第二个抽屉,然后想出了一个不同的方法。我想我试图以一种不适合的方式使用它。