我创建了一个RelativeLayout,其中包含一个ImageView和一个SlidingDrawer。我在ImageView上设置了onClickListener,在SlidingDrawer的内容部分设置了另一个。打开SlidingDrawer并单击其内容部分时,将触发ImageView的onClick事件。

为什么?滑动抽屉不是在ImageView上方吗?

谢谢

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="@drawable/background"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ImageView
        android:id="@+id/whip"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

    <SlidingDrawer
         android:id="@+id/drawer"
         android:layout_width="wrap_content"
         android:layout_height="53dp"
         android:layout_alignParentBottom="true"
         android:orientation="horizontal"

         android:handle="@+id/facebook_icon"
         android:content="@+id/facebook_contacts">

         <ImageView
             android:id="@+id/facebook_icon"
             android:layout_width="55dp"
             android:layout_height="53dp"
             android:src="@drawable/facebook_handler_off" />

         <ImageView android:id="@+id/facebook_contacts"
                android:layout_width="265dp"
                android:layout_height="53dp"
                android:src="@drawable/facebook_content" />

    </SlidingDrawer>

</RelativeLayout>

最佳答案

尝试拦截鼠标的实现
boolean onInterceptTouchEvent(MotionEvent事件)

在文档中,此方法“拦截所有触摸屏运动事件”。

如果要使用SlidingDrawer处理特定的MotionEvent(提供参数),则返回true。

还要看onTouchEvent(MotionEvent event) :)

http://developer.android.com/reference/android/widget/SlidingDrawer.html#onInterceptTouchEvent(android.view.MotionEvent

10-07 16:32