最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android之事件分發(fā)機(jī)制與沖突詳解

 更新時(shí)間:2021年09月07日 15:09:34   作者:冬天的毛毛雨  
這篇文章主要介紹了Android之事件分發(fā)機(jī)制與沖突詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

在日常的開(kāi)發(fā)過(guò)程中,我們往往會(huì)在同一個(gè)界面中出現(xiàn)內(nèi)外兩層或者多層View同時(shí)滑動(dòng)的現(xiàn)象,這個(gè)時(shí)候往往**會(huì)出現(xiàn)滑動(dòng)沖突。面對(duì)滑動(dòng)沖突,很多開(kāi)發(fā)人員不知道從哪里入手,**即便稍微有點(diǎn)思路,也要費(fèi)點(diǎn)時(shí)間才能解決。其實(shí)滑動(dòng)沖突的解決是有一定的套路的。

下面主要針對(duì)Android開(kāi)發(fā)中幾種常見(jiàn)的滑動(dòng)沖突及對(duì)應(yīng)的解決方案來(lái)進(jìn)行講解

常見(jiàn)的滑動(dòng)沖突場(chǎng)景!

目前常見(jiàn)的滑動(dòng)沖突主要可以分為以下三種來(lái)概括:

  1. 外部滑動(dòng)方向和內(nèi)部View的滑動(dòng)方向不一致,內(nèi)部的View和外部的View的滑動(dòng)方向是**互相垂直的,**比如Scroll View嵌套View Pager,如圖1-1所示;
  2. 外部滑動(dòng)方向和內(nèi)部View的滑動(dòng)方向是一致的,內(nèi)部的View和外部的View的滑動(dòng)方向**互相平行,**比如Scroll View嵌套R(shí)ecyclerView ,如圖1-2所示;
  3. 外部滑動(dòng)方向與內(nèi)部滑動(dòng)方向即有相同的又有垂直的,也就是以上兩種情況的綜合出現(xiàn),這種情況是算比較復(fù)雜的一種情況,如圖1-3所示。

圖片

常見(jiàn)滑動(dòng)沖突的處理思路!

滑動(dòng)沖突看起來(lái)比較棘手,特別像場(chǎng)景3的那種嵌套好幾層的滑動(dòng)沖突。

但不管滑動(dòng)沖突多么的復(fù)雜,它主要涉及到的都是一些觸摸事件的分發(fā)和攔截,有一定的處理規(guī)則在里面,我們可以根據(jù)規(guī)則來(lái)選擇合適的方法來(lái)進(jìn)行處理:

常用的沖突解決的兩種基本思路

(1). 外部攔截法

即重寫(xiě)父容器的onInterceptTouchEvent方法,根據(jù)父容器是否需要攔截這個(gè)事件來(lái)返回對(duì)應(yīng)的布爾值,如果父容器需要攔截這個(gè)觸摸事件則返回true,如果不攔截則返回false;

圖 2-1

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

即父容器不攔截任何的事件,將對(duì)應(yīng)的事件傳遞給子元素,根據(jù)子元素是否需要消耗這個(gè)觸摸事件來(lái)進(jìn)行處理,如果子元素不消耗此事件,又會(huì)交由父容器來(lái)進(jìn)行對(duì)應(yīng)的處理,子容器需要做如圖2-2處理,父容器需要做如圖2-3所示處理。

圖 2-2

圖 2-3

同時(shí),事件沖突也是一線互聯(lián)網(wǎng)大廠中的必考題,來(lái)看看下面這些問(wèn)題你能答上來(lái)幾個(gè)?

  1. 說(shuō)說(shuō)你對(duì)事件分發(fā)機(jī)制的理解。(阿里面試真題)
  2. down事件和move事件對(duì)應(yīng)的流程機(jī)制是什么?(騰訊面試真題)
  3. 事件沖突中如何快速找到解決方案,請(qǐng)舉例。(字節(jié)面試真題)
  4. ScrollView 和RecyclerView 沖突時(shí),如何解決?(百度面試真題)

所以說(shuō),關(guān)于解決事件沖突的技巧,也是大家需要掌握其中精髓的!

但如果通過(guò)博客文章學(xué)習(xí),看完后自身是感覺(jué)學(xué)到了,一旦項(xiàng)目中出現(xiàn)了事件沖突的問(wèn)題,很難將文章中的知識(shí)點(diǎn)運(yùn)用到實(shí)際問(wèn)題當(dāng)中,而很多開(kāi)發(fā)者在解決事件沖突中遇到的最大問(wèn)題,就是很難找到解決問(wèn)題的切入點(diǎn)。

到此這篇關(guān)于Android之事件分發(fā)機(jī)制與沖突詳解的文章就介紹到這了,更多相關(guān)Android之事件分發(fā)機(jī)制與沖突內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

磐石市| 贞丰县| 德安县| 丹寨县| 阜新市| 皮山县| 翼城县| 洪湖市| 新源县| 大石桥市| 肇东市| 广河县| 兰溪市| 新化县| 黄梅县| 六枝特区| 临漳县| 伊宁县| 太康县| 平原县| 崇义县| 余干县| 安新县| 江川县| 宁陵县| 西青区| 香格里拉县| 阳信县| 连山| 西畴县| 乐陵市| 白河县| 莲花县| 娱乐| 长乐市| 崇礼县| 句容市| 石城县| 新安县| 黄冈市| 新余市|