OnTouch()& onClick()ScrollView中的VIew事件

时间:2013-09-23 07:07:33

标签: android onclick scrollview ontouchevent

我在滚动视图中有10个图像视图

单击图像后,我想执行操作

但是当我尝试滚动ScrollView中的Imags时,Touch_down和Touch_UP一起被视为点击

帮帮我 我知道解决方案很简单 但我想我错过了一些逻辑

我在这里放置我的代码

  public class CustomScrollView extends ScrollView {

    public CustomScrollView(Context context) {
        super(context);
    }

    public CustomScrollView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }

    public CustomScrollView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return false;

    }

    @Override
    public boolean onTouchEvent(MotionEvent p_event) {
        if (p_event.getAction() == MotionEvent.ACTION_MOVE && getParent() != null) {
            getParent().requestDisallowInterceptTouchEvent(true);
        }
        return super.onTouchEvent(p_event);
    }
 }

在这个ScrollView中,我添加了一个ImageView

1 个答案:

答案 0 :(得分:1)

好吧,我会试着回答.. 我认为(在我看来),你应该只为ImageView使用onclick,所以当你在ScrollView上滚动时,不会点击ImageView。 这里有我的代码示例

layout.xml

上的

<ImageView
            android:id="@+id/ur_img_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:contentDescription="@string/description"
            android:onClick="onClickEvent"
            android:src="@drawable/yourDrawable"
            />

然后在 activity.java 导入android.view.View上创建事件,创建一个类似于.xml文件中使用的方法,(例如android:onClick =“的 onClickEvent “)

public void onClickEvent(View v){
      //do your event here
}

就是这样。