2012-02-03 134 views

回答

81

哪一個更好用?

這確實取決於您的要求。 onTouch爲您提供運動事件。因此,你可以做很多奇特的事情,因爲它可以幫助你區分移動狀態。僅舉幾

  • ACTION_UP
  • ACTION_DOWN
  • ACTION_MOVE

這些都是我們平時實現讓慾望的結果,例如在屏幕上拖動視圖的共同行動。

另一方面,除了哪個用戶交互的視圖,onClick並沒有給你太多。 onClick是一個完整的事件,包括聚焦,按下和釋放。所以,你幾乎不能控制它。一方面是實施起來非常簡單。

我們是否需要同時實施?

這是沒有必要的,除非你想搞砸你的用戶。如果你只是想要簡單的點擊事件,去onClick。如果您想要點擊更多,請使用onTouch。這兩者都會使這個過程變得複雜。

從用戶的角度來看,如果您仔細實施onTouch以使其看起來像onClick,那麼它並不明顯。

+2

如果你需要一些控制,然後去onTouch。對於onClick的大多數情況都可以。請參閱PH7的答案。 – drulabs 2012-02-03 04:28:25

+0

我仍然試圖找出使用哪個。如果我有4個視圖,其中3個需要點擊和滑動,而第4個只需點擊一次。我知道我只能用onTouch作爲點擊或刷頭查看前三個視圖,但第四個視圖呢?我應該實現onClick的一個視圖,或者只是使用onTouch,因爲它已經被稱爲..? – cjayem13 2014-10-17 16:00:05

+0

需要注意的是,可能有必要使用onTouch來實現某些結果,在這種情況下,用戶的觀點會被詛咒。 FE,如果你想阻止軟鍵盤顯示,所以你可以提供你自己的,它必須通過onTouch。 TIL onClick不會這樣做。 – ChiefTwoPencils 2014-12-24 01:26:17

19

「觸摸」事件是有人將手指放在屏幕上。它會在手指的整個運動過程中被調用,向下,向上拖動。 「點擊」甚至不需要來自屏幕。它可能是某人按下輸入鍵。

使用OnTouchListener當你想從別人的手指在屏幕上接收事件。當你想檢測點擊時,使用OnClickListener

+0

我見過一些開發人員使用觸摸事件作爲按鈕,這是什麼原因?我沒有在手機上測試過,但是,有沒有什麼表演即興創作? – 2012-02-03 02:17:38

+0

@NixitPatel在沒有看到它們的來源的情況下,沒有什麼好的理由可以想到。 – 2012-06-03 23:16:04

+0

是真的,但現在我找到了我的答案......在你們的幫助下和一些粒子方法。無需擔心,謝謝你問我 – 2012-06-04 04:51:06

7
  • onClickListener用於每當任何視圖點擊事件引發的,例如說:單擊事件按鈕,ImageButton的。

  • onTouchListener只要你想實現觸摸功能,比如說如果你想獲得精確觸摸的屏幕座標就可以使用。

從官方文檔,定義都是:單擊視圖時要調用回調接口定義:

  • onClickListner
  • onTouchListener:將觸摸事件分派到此視圖時要調用的回調的接口定義。觸摸事件發送給視圖之前,將調用回調。
+1

我見過一些開發人員使用觸摸事件的按鈕會是什麼原因呢?我沒有在手機上測試過,但是,有沒有什麼表演即興創作? – 2012-02-03 02:16:58

7

通過onclick事件使用ontouch事件的一個很好的理由是在用戶點擊時獲得更快的響應。 onclick事件在響應延遲和採取所需行動時遭遇延遲。 ontouch事件更適合提供高性能的移動Web應用程序。

0

OnClickListener - 用於一個基本目的,我們只是需要從用戶即點擊,點擊按鈕,屏幕

OnTouchListener上沒有阻力或手勢基本上是一個更微調控制比OnClickListener。它執行和在屏幕上的按下/釋放動作它允許用戶與移動的組合,向下觸摸,向上觸摸,手指拖動或任何移動手勢屏幕

2

優先使用onTouch上。給你一個例子: 當你有一個ViewPager和一個TextView在裏面。 如果你在textView上實現了setOnClickListener,當你在TextView上觸摸/滑動時,你將無法滑動ViewPager

相關問題