我正在使用 SemiClosedSlidingDrawer ( http://pastebin.com/FtVyrcEb ),并且我在内容部分添加了滑块顶部的一些按钮,这些按钮始终可见。
问题是它们只有在滑块完全打开时才可点击(或点击事件被调度)......
当滑块“半打开”时,点击事件似乎没有发送到按钮......
我已经用调试器检查了 onInterceptTouchEvent()在这两种情况下(打开/半折叠)以下代码
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (mLocked) {
return false;
}
final int action = event.getAction();
float x = event.getX();
float y = event.getY();
final Rect frame = mFrame;
final View handle = mHandle;
handle.getHitRect(frame);
//FOLLOWING THE CRITICAL CODE
if (!mTracking && !frame.contains((int) x, (int) y)) {
return false;
}
返回 false 但仅在打开滑块时才调度事件...它检查相对于单击的 (x,y) 是否包含在从滑动抽屉的 HandleButton 视图开始创建的矩形中...
final Rect frame = mFrame;
final View handle = mHandle;
handle.getHitRect(frame);
这显然是错误的,因为我单击了滑动抽屉内容部分中包含的按钮,这没关系......
正如我上面所说的,问题是在半折叠状态下,内容部分中包含的按钮没有接收到事件...
你知道我该如何解决这个问题吗?
可以是滑动抽屉的某种状态,以避免在折叠时点击孩子吗?
提前致谢...