目录
效果展示
未处理之前:
处理后:
关键代码
这里主要时对EditText的触摸事件进行了监听,当手指在EditText上滑动的时候阻止父层的View截获Touch事件并且让EditText不可获取焦点,阻止父层View获取Touch事件是为了防止手指滑动的时候带动父控件也滑动,而不让EditText获取焦点是为了防止进入编辑模式,进入编辑模式EditText滑动起来就会有卡顿的感觉,滑动完了之后当手指抬起的时候要恢复父控件获取Touch事件的能力同时也要让EditText获取焦点好进行编辑,具体代码如下:
et_content.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent motionEvent) {
v.getParent().requestDisallowInterceptTouchEvent(true);
switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_MOVE:
et_content.setFocusable(false);
break;
case MotionEvent.ACTION_UP:
et_content.setFocusable(true);
et_content.setFocusableInTouchMode(true);
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
return false;
}
});
特别注意
如果当前页面有其他的EditText控件的话在滑动事件的处理中需要将其他EditText控件的焦点一同屏蔽了,否则会抢夺焦点。
网友评论