别隐藏导航抽屉

时间:2014-08-23 11:02:31

标签: android navigation-drawer

我正在构建一个应用,我希望通过导航抽屉显示有关屏幕上显示内容的其他数据。 默认情况下,单击抽屉后它是隐藏的 - 我想覆盖此行为。 我想要的是保持抽屉打开,只要我点击它以外,并将点击事件重定向到基础视图。

这可能吗?如果没有抽屉布局,我该如何实现此功能?

1 个答案:

答案 0 :(得分:1)

我通过扩展DrawerLayout并覆盖onInterceptTouchEvent解决了这个问题:

if case .No = self { ... }

在上面的示例中,您可以在打开右侧抽屉时与内容进行交互。不要在主布局xml文件中预先将DrawerLayout更改为CustomDrawerLayout。

此外,您可能需要隐藏阴影覆盖图,该阴影覆盖图显示在布局的其余部分上方,用于此用途:

public class CustomDrawerLayout extends DrawerLayout {
    // .... Constructors here...

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        final boolean result = super.onInterceptTouchEvent(ev);
        if (isDrawerOpen(Gravity.RIGHT)) {
            switch (ev.getAction()) {
                case MotionEvent.ACTION_DOWN:
                case MotionEvent.ACTION_UP: {
                    return false;
                }
            }
        }
        return result;
    }
}