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没找到原因...