【问题标题】:Disabling layer under SlidingDrawer in Android在Android中禁用SlidingDrawer下的图层
【发布时间】:2011-05-11 20:15:53
【问题描述】:

我发现了一些关于这个主题的问题,并且我已经尝试了解决方案,但我似乎无法正确解决问题。我有一个 TableLayout 作为 RelativeLayout 中的第一个孩子和一个 SlidingDrawer 作为第二个孩子。幻灯片工作正常,但在抽屉打开时单击它会进入抽屉下的项目。

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

如果我把“return true”改成一个

if (slidingDrawer.isOpened()) 返回真; 别的 返回错误;

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

我不确定我错过了什么。如有任何帮助,我将不胜感激。

【问题讨论】:

标签: android clickable slidingdrawer ontouchlistener


【解决方案1】:

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

//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);
    }
};

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 这行得通,但是如果您的内容是从带有 标记的单独 xml 文件中包含的,则必须将 'android:clickable="true"' 放在子布局文件的布局中. See this comment:
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2011-02-05
      • 1970-01-01
      • 2013-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多