在Android中禁用SlidingDrawer下的图层

时间:2011-05-11 20:15:53

标签: android clickable slidingdrawer ontouchlistener

我发现了一些关于这个主题的问题,我已经尝试了解决方案,但我似乎无法做到正确。我有一个TableLayout作为RelativeLayout中的第一个子节点,SlidingDrawer作为第二个子节点。幻灯片工作正常,但是当抽屉打开时点击抽屉进入抽屉下面的项目。

我尝试在滑块的开头添加一个带有“return true”的ontouch侦听器,但似乎所做的一切都是不允许我打开抽屉。此外,如果抽屉打开,任何“将”覆盖的东西都是不可点燃的。

如果我将“return true”更改为

if(slidingDrawer.isOpened())     返回true; 其他     返回false;

这给了我一些问题。当抽屉打开而我无法点击下层时,我也无法点击抽屉上的任何东西或点击手柄来关闭抽屉。

我不确定我错过了什么。我很感激任何帮助。

3 个答案:

答案 0 :(得分:3)

我通过做以下类型的事情终于解决了这个问题:

//sliderdrawer close
private OnDrawerCloseListener onClick_DrawerClosed = new OnDrawerCloseListener() {
    @Override
    public void onDrawerClosed() {
        _slideDrawer.setClickable(false);
    }
};

//sliderdrawer open
private OnDrawerOpenListener onClick_DrawerOpened = new OnDrawerOpenListener() {
    @Override
    public void onDrawerOpened() {
        _slideDrawer.setClickable(true);
    }
};

答案 1 :(得分:3)

尝试在滑动抽屉内容组件上设置android:clickable="true",而不是在父抽屉组件上切换它。适用于我,不需要代码来监听状态变化。

答案 2 :(得分:1)

设置可点击完全删除任何传递到后面的窗口,而程序方法将允许下面的项目在抽屉关闭后看到点击。