Android在Fragment中實(shí)現(xiàn)監(jiān)聽(tīng)觸摸事件
本文給大家介紹的是監(jiān)聽(tīng)Fragment的觸摸事件實(shí)現(xiàn)。如果大家有更好的機(jī)制,可以留言交流,下面來(lái)看看詳細(xì)的介紹:
大家都知道,我們的activity中有onTouchEvent
方法,可以用來(lái)實(shí)現(xiàn)觸摸事件的監(jiān)聽(tīng)。
activity的觸摸事件
@Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); }
但是對(duì)于Fragment
,其中卻沒(méi)有這個(gè)方法,如果我們?cè)?code>fragment中想要監(jiān)聽(tīng)觸摸事件 該如何實(shí)現(xiàn)呢?
我的方法是,自己實(shí)現(xiàn)觸摸事件的分發(fā)。
先定義一個(gè)接口
public interface MyOnTouchListener { public boolean onTouch(MotionEvent ev); }
再搞一個(gè)list
存儲(chǔ)listener
private ArrayList<MyOnTouchListener> onTouchListeners = new ArrayList<MyOnTouchListener>( 10);
再自己實(shí)現(xiàn)注冊(cè),與銷毀以及分發(fā)
fragment
觸摸事件分發(fā),將觸摸事件分發(fā)給每個(gè)能夠響應(yīng)的fragment
@Override public boolean dispatchTouchEvent(MotionEvent ev) { for (MyOnTouchListener listener : onTouchListeners) { if(listener != null) { listener.onTouch(ev); } } return super.dispatchTouchEvent(ev); } public void registerMyOnTouchListener(MyOnTouchListener myOnTouchListener) { onTouchListeners.add(myOnTouchListener); } public void unregisterMyOnTouchListener(MyOnTouchListener myOnTouchListener) { onTouchListeners.remove(myOnTouchListener) ; }
那么在fragment
中 我們這樣使用即可:初始化監(jiān)聽(tīng)器,然后向activity
注冊(cè),同時(shí)監(jiān)聽(tīng)器中監(jiān)聽(tīng)手勢(shì)動(dòng)作。
onTouchListener = new MusicActivity.MyOnTouchListener() { @Override public boolean onTouch(MotionEvent ev) { gestureDetector.onTouchEvent(ev); return false; } }; ((MusicActivity) getActivity()).registerMyOnTouchListener(onTouchListener);
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- 解析Android開(kāi)發(fā)中多點(diǎn)觸摸的實(shí)現(xiàn)方法
- android 多點(diǎn)觸摸圖片縮放的具體實(shí)現(xiàn)方法
- 簡(jiǎn)單講解Android開(kāi)發(fā)中觸摸和點(diǎn)擊事件的相關(guān)編程方法
- Android修改源碼解決Alertdialog觸摸對(duì)話框邊緣消失的問(wèn)題
- Android 觸摸事件監(jiān)聽(tīng)(Activity層,ViewGroup層,View層)詳細(xì)介紹
- android命令行模擬輸入事件(文字、按鍵、觸摸等)
- Android中SurfaceView和view畫(huà)出觸摸軌跡
- Android實(shí)現(xiàn)手勢(shì)滑動(dòng)多點(diǎn)觸摸放大縮小圖片效果
- android中處理各種觸摸事件的方法淺談
- Android檢測(cè)手機(jī)多點(diǎn)觸摸點(diǎn)數(shù)的方法
相關(guān)文章
Android實(shí)現(xiàn)雙擊返回鍵退出應(yīng)用實(shí)現(xiàn)方法詳解
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)雙擊返回鍵退出應(yīng)用的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09Android應(yīng)用動(dòng)態(tài)修改主題的方法示例
今天小編就為大家分享一篇關(guān)于Android應(yīng)用動(dòng)態(tài)修改主題的方法示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03Android 游戲引擎libgdx 資源加載進(jìn)度百分比顯示案例分析
因?yàn)榘咐容^簡(jiǎn)單,所以簡(jiǎn)單用AndroidApplication -> Game -> Stage 搭建框架感興趣的朋友可以參考下2013-01-01Android開(kāi)發(fā)之音視頻協(xié)議介紹
本文對(duì)音視頻的協(xié)議起源做詳細(xì)介紹,學(xué)習(xí)之后可以加深對(duì)音視頻知識(shí)的了解。這里的音視頻不僅針對(duì)Android平臺(tái),其他平臺(tái)也通用。2022-04-04Android studio實(shí)現(xiàn)菜單操作
這篇文章主要為大家詳細(xì)介紹了Android studio實(shí)現(xiàn)菜單操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10Android開(kāi)發(fā)中CheckBox的簡(jiǎn)單用法示例
這篇文章主要介紹了Android開(kāi)發(fā)中CheckBox的簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了Android中CheckBox控件的基本功能設(shè)置與頁(yè)面布局技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07Android實(shí)現(xiàn)Service重啟的方法
這篇文章主要介紹了Android實(shí)現(xiàn)Service重啟的方法,涉及Android操作Service組件實(shí)現(xiàn)服務(wù)重啟的功能,需要的朋友可以參考下2015-05-05