未触发SlidingDrawer上的onClick事件

时间:2011-02-28 15:09:07

标签: android onclick slidingdrawer

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

为什么呢?不是SlidingDrawer在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>

1 个答案:

答案 0 :(得分:1)

尝试通过执行拦截鼠标 boolean onInterceptTouchEvent(MotionEvent事件)

给予doc,这种方法“拦截所有触摸屏动作事件”。

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

同样查看onTouchEvent(MotionEvent event):)

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