困っていること
ImageButtonを押した時にどのようにして長押しを検知すれば良いのかわからず困っています。
viewへの長押し判定
親Viewに対しての長押しは以下のようなコードで実装することができました。これをImageButtonのtapに移植したいのですが方法がわかりませんでした。
Kotlin
1val longPressHandler = Handler() 2 val longPressReceiver = Runnable { 3 Log.d("tap", "長押しされたよ") 4 } 5 6 @Override 7 override fun onTouchEvent(event: MotionEvent?): Boolean { 8 event ?: false 9 when (event!!.action) { 10 // タップされた時 11 MotionEvent.ACTION_DOWN -> { 12 longPressHandler.postDelayed( longPressReceiver, 1000) 13 } 14 // タップ終了時 15 MotionEvent.ACTION_UP -> { 16 //ここで解除すれば1秒に満たない場合長押し失敗させることができる 17 longPressHandler.removeCallbacks( longPressReceiver ) 18 } 19 } 20 return false; 21 }
buttonのtapイベントはsetOnClickListenerで取得できるようだったのでsetOnClickListenerの中でeventを取得できるのかと思ったのですが、取得できるのはviewのようでEventのDOWNやUPを取得することができませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/31 13:47