ScrollView中包含EditText,导致EditText无法上下滚动的解决办法:
mEt_content.setOnTouchListener(this); // 解决scrollView中嵌套EditText导致不能上下滑动的问题
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (v.getId()) {
case R.id.et_content:
case R.id.et_title:
// 解决scrollView中嵌套EditText导致不能上下滑动的问题
v.getParent().requestDisallowInterceptTouchEvent(true);
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_UP:
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
}
return false;
}
实际就是在手指按下的时候,如果触发的EditText,则请求父控件不要拦截;在手指抬起的时候,允许父控件进行拦截(恢复系统默认的事件分发机制)。
不过还遇到一个问题,就是EditText中输入的文字过多的时候,点击EditText,当EditText获得焦点后,ScrollView会莫名的跳动,该bug没找到原因...