第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
  • activity事件分發(fā)流程


    662386230001eef809600540.jpg
    查看全部
  • view的事件分發(fā)流程


    662384030001cd2109600540.jpg
    查看全部
  • Activity 事件分發(fā)

    https://img1.sycdn.imooc.com/652c50d10001a25024701304.jpg

    查看全部
    1. Activity 負(fù)責(zé)生命周期和處理事件。

    2. Window負(fù)責(zé)視圖的控制。

    3. 一個(gè)Activity包含了一個(gè)Window, 一個(gè)Window才真正代表了一個(gè)窗口。

    4. Window包含了一個(gè)頂級(jí)的View -> DecorView

    5. Activity中setContentView的視圖就是DecorView的子元素。

    6. 所有的事件都要經(jīng)過(guò)DecorView才會(huì)傳遞給我們的View。

    7. 傳遞層級(jí):Activity->Window->DecorView->ViewGroup->View

    8. 事件傳遞的三個(gè)主要對(duì)象:Activity、ViewGroup、View

    查看全部
    1. 事件序列:從手指按下屏幕開(kāi)始,到手指離開(kāi)屏幕所產(chǎn)生的一系列事件。

    2. 傳遞層級(jí):Activity->Window->DecorView->ViewGroup->View

    查看全部
  • View 事件傳遞

    62bfabd500010f9b07200404.jpg
    查看全部
  • 熟記流程圖、翻看源碼

    查看全部
    0 采集 收起 來(lái)源:總結(jié)

    2022-05-03

  • 事件默認(rèn)傳遞流程和在同一事件序列中的變化

    查看全部
  • 分別創(chuàng)建了MyActivity extends Activity,MyViewGroup extends FrameLayout,MyView extends View

    然后分別重寫(xiě)他們需要的方法dispatchTouchEvent、onTouchEvent,特別的是在ViewGroup中多重寫(xiě)一個(gè)onInterceptTouchEvent

    根據(jù)流程圖,可以發(fā)現(xiàn)

    • 傳遞順序Activity-ViewGroup-View

    • 由上自下的dispatvhTouchEventh互相傳遞后,到由下而上的onTouchEvent互相傳遞

    查看全部
  • 以上進(jìn)入分發(fā)的過(guò)程。判斷是否符合安全策略。符合安全策略-繼續(xù),是鼠標(biāo)-結(jié)束不分發(fā),

    注冊(cè)了touchListener方法,里面的onTouch方法返回true標(biāo)志著事件被消費(fèi)了。

    查看全部
  • 如果不是取消事件并且沒(méi)有被分發(fā),繼續(xù)分發(fā)處理。

    當(dāng)前動(dòng)作是按下、移動(dòng)時(shí),首先清空之前所有的觸摸點(diǎn)信息。然后獲取到可以接收的子view的集合

    從前到后遍歷子view,嘗試找到真正點(diǎn)擊的view。

    用戶沒(méi)有定義了view的繪制順序,返回當(dāng)前下標(biāo)。

    定義了的話,通過(guò)getChildDrawingOrder獲取View的下標(biāo),需要重寫(xiě)這個(gè)方法。

    所以一般返回i。

    在view列表中拿出view,否則在children中拿出。

    查看全部
  • *** 看庫(kù)或框架的源碼時(shí),需要的是捋清楚代碼的思路,理解核心思想,而不是明白其中每一行代碼的實(shí)現(xiàn)。



    接下來(lái)判斷onInterceptTouchEvent方法的值

    發(fā)現(xiàn)一般情況下這個(gè)方法都會(huì)返回false,因?yàn)辄c(diǎn)擊來(lái)源!=鼠標(biāo)等等。

    查看全部
  • 第一個(gè)判斷:這個(gè)值在View中可以找到,是個(gè)檢測(cè)用的對(duì)象

    第二個(gè)判斷:提供的輔助功能的選項(xiàng),幫助有障礙的用戶的使用,不影響方法調(diào)用

    接下來(lái)正式進(jìn)入事件分發(fā)的邏輯代碼中

    判斷安全策略,

    查看全部
  • * dispatchTouchEvent? 標(biāo)志著事件進(jìn)入到了ViewGroup里面。首先被調(diào)用到。

    * onInterceptTouchEvent? 在過(guò)程中被調(diào)用。true=當(dāng)前ViewGroup消費(fèi)掉。false=傳遞下去。

    * onTouchEvent? ViewGroup沒(méi)有onTouchEvent方法的實(shí)現(xiàn),他是在View中實(shí)現(xiàn)的。

    應(yīng)用場(chǎng)景:希望事件進(jìn)行到ViewGroup終止,不傳輸?shù)阶覸iew中,用戶的觸摸事件自行處理。

    處理:重寫(xiě)onInterceptTouchEvent并返回true,同時(shí)重寫(xiě)onTouchEvent方法,在其中編寫(xiě)事件處理邏輯即可。


    查看全部
  • 事件未被消費(fèi),當(dāng)前視圖都沒(méi)能處理掉這個(gè)事件,才會(huì)去調(diào)用Activity的onTouchEvent方法,且他的返回值作為dispathchEvent的返回值。


    查看Activity中onTouchEvent方法的實(shí)現(xiàn)邏輯,發(fā)現(xiàn)其中一個(gè)的判斷邏輯很重要,如果返回為true則會(huì)關(guān)閉當(dāng)前界面且返回true。


    查看Window中shouldCloseOnTouch方法,當(dāng)這三個(gè)bolean值均為true時(shí)返回true。


    * mCloseOnTouchOutside=true這個(gè)值表示當(dāng)前Activity支持點(diǎn)擊空白區(qū)域讓acitvity消失。這個(gè)變量一般在downLoad的時(shí)候這個(gè)值才為true。

    * peekDecorView的實(shí)現(xiàn)在PhoneWindow,返回的是當(dāng)前的dectorView。

    * isOutside =true 表示當(dāng)前觸摸的點(diǎn)擊事件是在頂層View DoctorView之外的,沒(méi)有點(diǎn)擊到DoctorView里面。


    Activity整體傳遞流程比較線性,如果還是不清楚可以再回看源碼及流程圖消化吸收。

    查看全部
  • 查看源碼,dispatchTouchEvent方法時(shí)發(fā)現(xiàn):

    1、當(dāng)action是按下的時(shí)候(也就是當(dāng)事件剛開(kāi)始的時(shí)候)會(huì)調(diào)用onUserInteraction方法,而內(nèi)部并無(wú)具體實(shí)現(xiàn)——所以在事件剛開(kāi)始時(shí)可以實(shí)現(xiàn)這個(gè)方法用于監(jiān)聽(tīng)事件開(kāi)始。

    2、當(dāng)獲取上層view的superDispatchTouchEvent方法返回是true的時(shí)候就消費(fèi)掉這個(gè)事件,否則就傳給onTouchEvent處理。(符合上一節(jié)說(shuō)的流程)

    3、 Activity+Window+DecorView之間的關(guān)系:每個(gè)Activity都持有一個(gè)window對(duì)象,window本身是一個(gè)抽象類(lèi),有一個(gè)唯一的實(shí)現(xiàn)PhoneWindow,PhoneWindow持有了一個(gè)DecorView的實(shí)例,DecorView是Activity最頂層的View,他繼承自FrameLayout。

    4、FrameLayout繼承自ViewGroup,F(xiàn)rameLayout要實(shí)現(xiàn)的superDispatchTouchEvent方法在VIewGroup中實(shí)現(xiàn)了。

    查看全部

  • Activity中涉及到了兩個(gè)方法,返回值均為true/false,根據(jù)父類(lèi)dispathTouchEvent的返回走哪個(gè)方法。

    dispatchTouchEvent返回true,事件被消費(fèi),事件結(jié)束。

    onTouchEvent無(wú)論返回true/false,事件都結(jié)束。

    查看全部
  • 事件產(chǎn)生的時(shí)候會(huì)有這些類(lèi)型,可以想象下手指在屏幕中的活動(dòng)

    按下-移動(dòng)-抬起,存在這樣一個(gè)固定的規(guī)律,移動(dòng)可以不存在

    安卓中存在的這樣一個(gè)基本的層級(jí)關(guān)系和傳遞層級(jí)

    查看全部
  • 事件分發(fā)的定義和由來(lái),及他的出現(xiàn)的機(jī)制的統(tǒng)籌定義

    查看全部
    0 采集 收起 來(lái)源:什么是事件分發(fā)

    2022-05-02

  • 事件分發(fā)流程

    查看全部
  • 事件在Activity的分發(fā)

    查看全部
  • 系統(tǒng)把事件封裝為MotionEvent對(duì)象,事件分發(fā)的過(guò)程就是MotionEvent分發(fā)的過(guò)程。

    事件序列:從手指按下屏幕開(kāi)始,到手指離開(kāi)屏幕所產(chǎn)生的一系列事件。

    查看全部
  • 系統(tǒng)把事件封裝為MotionEvent對(duì)象,事件分發(fā)的過(guò)程就是MotionEvent分發(fā)的過(guò)程。

    事件序列:從手指按下屏幕開(kāi)始,到手指離開(kāi)屏幕所產(chǎn)生的一系列事件。

    查看全部
  • 事件分發(fā):用戶通過(guò)屏幕與手機(jī)交互,每一次點(diǎn)擊、長(zhǎng)按、移動(dòng)等都是一個(gè)事件

    事件分發(fā)機(jī)制:某一個(gè)事件從屏幕傳遞各個(gè)View,由View來(lái)使用這一事件(消費(fèi)事件)或者忽略這一事件(不消費(fèi)事件),這整個(gè)過(guò)程的控制。

    查看全部
    0 采集 收起 來(lái)源:什么是事件分發(fā)

    2021-11-12

  • Activity的事件分發(fā)流程圖。

    dispatchtouchEvent(MotionEvent ev) 和 onTouchEvent(MotionEvent ev) 流程圖

    事件什么情況下被消費(fèi),什么情況下被傳遞

    ?

    http://img1.sycdn.imooc.com//61691e3b00012f8f09190423.jpg

    查看全部
首頁(yè)上一頁(yè)1234567下一頁(yè)尾頁(yè)

舉報(bào)

0/150
提交
取消
課程須知
學(xué)習(xí)此課程,需要有android的基礎(chǔ)知識(shí)
老師告訴你能學(xué)到什么?
深克理解系統(tǒng)對(duì)于事件分發(fā)的流程,在今后的工作中加以應(yīng)用,控制自如,讓哪個(gè)控件接收事件,哪個(gè)控件屏蔽事件,對(duì)應(yīng)回調(diào)哪個(gè)方法等,了然于胸

微信掃碼,參與3人拼團(tuán)

微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購(gòu)買(mǎi)該課程,無(wú)需重復(fù)購(gòu)買(mǎi),感謝您對(duì)慕課網(wǎng)的支持!