多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > Android開發(fā)——View滑動(dòng)沖突解決方案

Android開發(fā)——View滑動(dòng)沖突解決方案

來源:程序員人生   發(fā)布時(shí)間:2016-10-10 08:17:23 閱讀次數(shù):2541次

0. 前言  

我們在Android開發(fā)——事件分發(fā)機(jī)制詳解中深入學(xué)習(xí)了事件分發(fā)機(jī)制,為我們解決Android開發(fā)中的滑動(dòng)沖突問題做了初步準(zhǔn)備。針對滑動(dòng)沖突這里給出兩種解決方案:外部攔截法和內(nèi)部攔截法。

轉(zhuǎn)載請注明出處:http://blog.csdn.net/seu_calvin/article/details/52600422

 

1.外部攔截法

外部攔截法是指事件都先經(jīng)過父控件的攔截處理,這里需要注意的是ACTION_DOWN事件父控件中必須返回false,由于如果父控件攔截了DOWN,后續(xù)事件也會(huì)交給它處理,子控件就沒法拿到事件了,具體緣由已在前言中的鏈接文中介紹過了。接著就是MOVE事件,如果父控件需要此攔截事件,就攔截,不需要就不攔截。最后在UP事件中也默許返回false。

外部攔截法不需要改寫子控件,只需要改寫父控件的onInterceptTouchEvent方法,代碼以下:

@Override public boolean onInterceptTouchEvent(MotionEvent ev) { boolean intercepted=false; switch (action) { case MotionEvent.ACTION_MOVE: intercepted=false; break; case MotionEvent.ACTION_MOVE:{ if(父控件需要處理此事件){ intercepted=true;} else{ intercepted=false;} break; } case MotionEvent.ACTION_UP: { intercepted=false; break; } //... return intercepted; }


2.內(nèi)部攔截法

內(nèi)部攔截法是指父控件設(shè)置為不攔截除ACTION_DOWN之外的任何事件,當(dāng)DOWN傳遞給子元素時(shí),通過設(shè)置getParent().requestDisallowInterceptTouchEvent(false)使父控件不攔截任何事件,此時(shí)所有事件都傳遞給子元素,如果子元素需要此事件就直接消耗掉,否則可在ACTION_MOVE通過設(shè)置getParent().requestDisallowInterceptTouchEvent(true)使父控件去攔截MOVEUP事件并由自己消耗該事件。

我們需要修改子元素的dispatchTouchEvent方法

public boolean dispatchTouchEvent(MotionEventevent) { switch (action) { case MotionEvent.ACTION_DOWN:{ //使父控件不攔截DOWN之外的1系列事件 getParent().requestDisallowInterceptTouchEvent(true); break;} case MotionEvent.ACTION_MOVE:{ if(父控件需要處理此事件){ getParent().requestDisallowInterceptTouchEvent(false); } break; } case MotionEvent.ACTION_UP: { break; } ... return super.dispatchTouchEvent(event); } 固然,還需要修改父容器的onInterceptTouchEvent()方法,使其默許攔截除DOWN之外的事件,代碼以下: @Override publicboolean onInterceptTouchEvent(MotionEvent ev) { intaction=ev.getAction(); if(action==MotionEvent.ACTION_DOWN){ return false; }else { return true; } }

以上就是兩種解決滑動(dòng)沖突的解決方案,在其中的條件判斷代碼里加入自己的業(yè)務(wù)邏輯判斷便可。

轉(zhuǎn)載請注明出處:http://blog.csdn.net/seu_calvin/article/details/52600422

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲国产一区二区三区最新 | 亚洲自拍小视频 | 日韩欧美精品在线观看 | 午夜视频在线播放 | 劲爆欧美第一页 | 欧美最猛黑人xxxxx猛交 | 国产精品第8页 | 亚洲天堂aa| 亚洲五月七月丁香缴情 | 日韩 国产 欧美视频一区二区三区 | 欧美日韩国产一区二区三区 | 亚州一二区 | 亚洲精品久 | 女人l8毛片a一级毛片 | 韩国女主播一区二区三区视频 | 久久亚洲天堂 | 日韩欧美一区二区三区在线观看 | 欧美三级免费观看 | 中文字幕精品一区二区三区视频 | 亚洲日本黄色 | 日本亚洲视频 | 欧美做爰gif动态图一区二区 | 精品伊人久久久香线蕉 | 欧美精品在线免费观看 | 一级亚洲 | 亚洲欧美综合另类图片小说区 | free性日韩 | 国产一级一片免费播放视频 | 欧式午夜理伦三级在线观看 | 日本午夜大片a在线观看 | 国产精品_国产精品_国产精品 | 成人偷拍自拍 | 国产一级淫片免费视频 | 蜜中蜜3动漫无修在线播放 免费 黄 色 人成 视频 | 亚洲精品www | 久久中文字幕不卡一二区 | 亚洲免费成人在线 | 一级性爱视频 | 日本96在线精品视频免费观看 | 国产自约视频 | japanese日本护士xxxx18一19 |