目錄
效果展示
未處理之前:
處理后:
關(guān)鍵代碼
這里主要時(shí)對(duì)EditText的觸摸事件進(jìn)行了監(jiān)聽报辱,當(dāng)手指在EditText上滑動(dòng)的時(shí)候阻止父層的View截獲Touch事件并且讓EditText不可獲取焦點(diǎn)乃正,阻止父層View獲取Touch事件是為了防止手指滑動(dòng)的時(shí)候帶動(dòng)父控件也滑動(dòng)邪媳,而不讓EditText獲取焦點(diǎn)是為了防止進(jìn)入編輯模式姨伟,進(jìn)入編輯模式EditText滑動(dòng)起來就會(huì)有卡頓的感覺山卦,滑動(dòng)完了之后當(dāng)手指抬起的時(shí)候要恢復(fù)父控件獲取Touch事件的能力同時(shí)也要讓EditText獲取焦點(diǎn)好進(jìn)行編輯岩饼,具體代碼如下:
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;
}
});
特別注意
如果當(dāng)前頁面有其他的EditText控件的話在滑動(dòng)事件的處理中需要將其他EditText控件的焦點(diǎn)一同屏蔽了,否則會(huì)搶奪焦點(diǎn)低剔。