原文移至:http://blog.youkuaiyun.com/jsmeli/article/details/73248836 请移步查看!
本人也就是分享一些自己遇到的问题,需求是在ScrollView放一个可以华东的EditText,并且这个EditText可以滑动,这样很多人会想到自定义EditText,自己重写dispatch方法,拦截滑动事件,并且自行处理,思路可以说是这样的,但是如果是自定义一个就有点麻烦了,在这里给大家提供一种简单的方法,大家可以以备不时之需。
//EditText的滑动事件屏蔽
EditText editText = (EditText)findViewById(R.id.edittext); editText.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent event) { // TODO Auto-generated method stub if (view.getId() == R.id.edittext) { view.getParent().requestDisallowInterceptTouchEvent(true); switch (event.getAction()&MotionEvent.ACTION_MASK){ case MotionEvent.ACTION_UP: view.getParent().requestDisallowInterceptTouchEvent(false); break; } } return false; } });
其实原理大家都明白 很简单 通过比较滑动区域 来判断滑动事件是谁的 从而返回滑动事件的滑动处理。
这样不仅不需要自定义EditText 而且完美的解决了滑动事件的冲突。