RecyclerView中包含EditText,导致EditText无法上下滚动的解决办法:
inputEditText.setOnTouchListener(onTouchListener);
private View.OnTouchListener onTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (MotionEvent.ACTION_DOWN == event.getAction()) {
v.getParent().requestDisallowInterceptTouchEvent(true);
} else if (MotionEvent.ACTION_UP == event.getAction()) {
v.getParent().requestDisallowInterceptTouchEvent(false);
}
return false;
}
};
实际就是在手指按下的时候,如果触发的EditText,则请求父控件不要拦截;在手指抬起的时候,允许父控件进行拦截(恢复系统默认的事件分发机制)。