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

首頁 > 系統 > Android > 正文

Android在Fragment中實現監聽觸摸事件

2019-10-23 18:29:33
字體:
來源:轉載
供稿:網友

本文給大家介紹的是監聽Fragment的觸摸事件實現。如果大家有更好的機制,可以留言交流,下面來看看詳細的介紹:

大家都知道,我們的activity中有onTouchEvent方法,可以用來實現觸摸事件的監聽。

activity的觸摸事件

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

但是對于Fragment,其中卻沒有這個方法,如果我們在android/213219.html">fragment中想要監聽觸摸事件 該如何實現呢?

我的方法是,自己實現觸摸事件的分發。

先定義一個接口

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

再搞一個list存儲listener

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

再自己實現注冊,與銷毀以及分發

fragment觸摸事件分發,將觸摸事件分發給每個能夠響應的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中 我們這樣使用即可:初始化監聽器,然后向activity注冊,同時監聽器中監聽手勢動作。

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富蕴县| 星子县| 黄浦区| 招远市| 陆川县| 古蔺县| 蓬安县| 琼中| 抚顺市| 武穴市| 盐池县| 横峰县| 临洮县| 克拉玛依市| 秦皇岛市| 宜良县| 凯里市| 灵山县| 辉县市| 乌拉特后旗| 湟源县| 临沂市| 柏乡县| 汝阳县| 武邑县| 江山市| 酒泉市| 徐州市| 保靖县| 金川县| 天峨县| 微博| 大同市| 沿河| 寻乌县| 哈尔滨市| 乡宁县| 登封市| 石狮市| 平江县| 神农架林区|