可滑动的View在可滑动的View中

Jul 24, 2015


问题

如果直接在一个scrollview中添加一个EditText,你会发现,EditText不能滑动。

解决办法

1

// 重写view的这个方法,就是告诉父view,不要截获我的触摸事件。
@Override  
public boolean dispatchTouchEvent(MotionEvent ev) { 
   	getParent().requestDisallowInterceptTouchEvent(true);
   	return super.dispatchTouchEvent(ev);  
}

2

下面这个方法,不用重写view(推荐)

// 实现onTouchListener

public boolean onTouch(View v, MotionEvent event) {
    v.getParent().requestDisallowInterceptTouchEvent(true);
    switch (event.getAction()&MotionEvent.ACTION_MASK){
        case MotionEvent.ACTION_UP:
            v.getParent().requestDisallowInterceptTouchEvent(false);
            break;
    }
    return false;
}

引用自知识空间