国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android在Fragment中實(shí)現(xiàn)監(jiān)聽觸摸事件

2019-12-12 02:56:30
字體:
供稿:網(wǎng)友

本文給大家介紹的是監(jiān)聽Fragment的觸摸事件實(shí)現(xiàn)。如果大家有更好的機(jī)制,可以留言交流,下面來看看詳細(xì)的介紹:

大家都知道,我們的activity中有onTouchEvent方法,可以用來實(shí)現(xiàn)觸摸事件的監(jiān)聽。

activity的觸摸事件

 @Override public boolean onTouchEvent(MotionEvent event) {  return super.onTouchEvent(event); }

但是對于Fragment,其中卻沒有這個方法,如果我們在fragment中想要監(jiān)聽觸摸事件 該如何實(shí)現(xiàn)呢?

我的方法是,自己實(shí)現(xiàn)觸摸事件的分發(fā)。

先定義一個接口

public interface MyOnTouchListener {  public boolean onTouch(MotionEvent ev); }

再搞一個list存儲listener

private ArrayList<MyOnTouchListener> onTouchListeners = new ArrayList<MyOnTouchListener>(   10);

再自己實(shí)現(xiàn)注冊,與銷毀以及分發(fā)

fragment觸摸事件分發(fā),將觸摸事件分發(fā)給每個能夠響應(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)聽器,然后向activity注冊,同時監(jiān)聽器中監(jiān)聽手勢動作。

  onTouchListener = new MusicActivity.MyOnTouchListener() {   @Override   public boolean onTouch(MotionEvent ev) {    gestureDetector.onTouchEvent(ev);    return false;   }  };  ((MusicActivity) getActivity()).registerMyOnTouchListener(onTouchListener);

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網(wǎng)的支持。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 伽师县| 万年县| 马关县| 株洲市| 广南县| 清流县| 都匀市| 门源| 牙克石市| 岑溪市| 佛冈县| 庆元县| 杭锦旗| 新河县| 墨竹工卡县| 龙江县| 张家口市| 台东市| 大方县| 嘉荫县| 昌都县| 金湖县| 黎川县| 开远市| 衡阳县| 东明县| 宜宾县| 荔浦县| 大余县| 富民县| 雅江县| 河西区| 应用必备| 红桥区| 罗山县| 靖边县| 曲麻莱县| 无为县| 湘潭市| 龙江县| 博白县|