Android 安卓-多点触摸-操作指针在视图中单击后无法捕获

Android 安卓-多点触摸-操作指针在视图中单击后无法捕获,android,multi-touch,Android,Multi Touch,我有这样的布局- <RelativeLayout android:id="@+id/relativeLayoutTable" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_below="@+id/relativeLayout215" andr

我有这样的布局-

     <RelativeLayout   
        android:id="@+id/relativeLayoutTable"   
        android:layout_height="fill_parent"     
        android:layout_width="fill_parent"       
        android:layout_below="@+id/relativeLayout215"
        android:layout_toRightOf="@+id/relativeLayout20" >

            <ScrollView 
                android:id="@+id/scrollView" 
                android:layout_height="fill_parent"     
                android:layout_width="fill_parent"         
                android:scrollbars="horizontal|vertical" 
                android:fillViewport="true"
                android:scrollbarStyle="insideOverlay"> 

                <HorizontalScrollView
                    android:id="@+id/horizontalScrollView1"  
                    android:layout_width="wrap_content"  
                    android:layout_height="wrap_content"
                    android:scrollbarStyle="insideOverlay" >

                    <TableLayout
                        android:id="@+id/tableLayout1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:gravity="center" />
                </HorizontalScrollView>
        </ScrollView>
    </RelativeLayout>


tablelayout由编程创建的单元格/视图组成。我已经为每个单元格/视图定义了onClicklistener。现在,我还为scrollView定义了onTouchlistener。我可以获取单元格/视图的单击事件,但在scrollView中无法获取操作指针向下事件。请帮忙。谢谢。

如果删除onClicklistener,则拖动/onTouchlistener表布局即可 你可以试试代码,它对我有用:

    @Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    boolean intercept = false;
    switch (event.getAction()  & MotionEvent.ACTION_MASK ) {
        case MotionEvent.ACTION_DOWN: {
            currentX = (int) event.getRawX();
            currentY = (int) event.getRawY();
            break;
        }
        case MotionEvent.ACTION_MOVE: {
            int x2 = Math.abs(currentX - (int) event.getRawX());
            int y2 = Math.abs(currentY - (int) event.getRawY());
            if (x2 > touchSlop || y2 > touchSlop) {
                intercept = true;
            }
            break;
        }
        case MotionEvent.ACTION_POINTER_DOWN: {//it's important
            oldDist = spacing(event);
            mode = ZOOM;
            intercept = true;
            break;
        }
    }
    return intercept;
}