如何在Fragment中監聽觸控事件

2021-08-08 12:15:01 字數 1075 閱讀 2316

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

activity的觸控事件

@override

public

boolean

ontouchevent

(motionevent event)

但是對於fragment,其中卻沒有這個方法,如果我們在fragment中想要監聽觸控事件 該如何實現呢?

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

先定義乙個介面

public inte***ce myontouchlistener
再搞乙個list儲存listener

private arraylistontouchlisteners = new arraylist(

10);

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

fragment觸控事件分發,將觸控事件分發給每個能夠響應的fragment

@override

public boolean dispatchtouchevent(motionevent ev)

}return super.dispatchtouchevent(ev);

}public void registermyontouchlistener(myontouchlistener myontouchlistener)

public void unregistermyontouchlistener(myontouchlistener myontouchlistener)

那麼在fragment中 我們這樣使用即可:初始化***,然後向activity註冊,同時***中監聽手勢動作。

ontouchlistener = new musicactivity.myontouchlistener() 

};((musicactivity) getactivity()).registermyontouchlistener(ontouchlistener);

如何在Revit中監聽鍵盤事件

小夥伴們在做revit二次開發的時候,可能會需要在自己做的外掛程式執行時,去監聽某個按鍵然後做出相應的反應。比如在生成乙個很大的模型時,發現不對勁,想停止程式執行,這個時候就可以通過監聽按鍵事件去取消這個正在執行的程式,或者通過監聽按鍵事件去觸發特定事件。為了實現全域性監聽,這裡使用了hook技術,...

如何在服務程式中監聽硬體事件

主要通過registerdevicenotification函式來完成,網上一般能找到都是window程式,很少缺少服務程式的例子。2.svcmain 函式中 dev broadcast deviceinte ce dev broadcast deviceinte ce dev broadcast ...

如何在程式中延時

方法一 使用sleep函式,如延時2秒,用sleep 2000 方法二 使用sleep函式的不利在於延時期間不能處理其他的訊息,如果時間太長,就好象宕機一樣,利用coledatetime類和coledatetimespan類實現延時就不會出現那樣的問題 coledatetime start time...