删除ScrollView子项的滚动事件

时间:2014-09-17 13:22:19

标签: android android-layout scrollview

是否可以删除ScrollView内部布局的滚动事件?

我有以下布局层次结构:

滚动型

RelativeLayout的

的LinearLayout

TableLayout

RelativeLayout的

GestureOverlayView

我想删除包含GestureOverlayView的RelativeLayout的滚动事件,这样当用户绘制一条垂直线时,该事件不会被截取为滚动而是作为绘图。

1 个答案:

答案 0 :(得分:3)

我不知道你是否还需要,但这是我测试的答案。 这是阻止父View窃取子视图的touchEvent的方法:

childView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (v.getId() == R.id.childView) {
                v.getParent().requestDisallowInterceptTouchEvent(true);
                switch (event.getAction() & MotionEvent.ACTION_MASK) {
                    case MotionEvent.ACTION_UP:
                        v.getParent().requestDisallowInterceptTouchEvent(false);
                        break;
                }
            }

            return false;
        }
    });

你可以通过以下方式进入父母:

v.getParent().getParent ....