欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年05月04日 15:25:58   作者:Jerey_Jobs  
這篇文章主要給大家介紹了Android在Fragment中實(shí)現(xiàn)監(jiān)聽(tīng)觸摸事件的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。

本文給大家介紹的是監(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ì)腳本之家的支持。

相關(guān)文章

最新評(píng)論