์ฐ์ ์ฝ๋๋ถํฐ
package com.example.event
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.MotionEvent
import android.view.View
class MainActivity : AppCompatActivity() {
private val view1 : View by lazy {
findViewById(R.id.view1)
}
// private val view2 : View by lazy {
// findViewById(R.id.view2)
// }
//
// private val view3 : View by lazy {
// findViewById(R.id.view3)
// }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
view1ClickListener()
}
private fun view1ClickListener() {
view1.setOnTouchListener { _:View, event:MotionEvent ->
when(event.action) {
MotionEvent.ACTION_DOWN -> Log.d("action", "์๊ฐ๋ฝ ๋๋ฆผ")
MotionEvent.ACTION_MOVE -> Log.d("action", "์๊ฐ๋ฝ ์ด๋")
MotionEvent.ACTION_UP -> Log.d("action", "์๊ฐ๋ฝ ๋")
}
return@setOnTouchListener true
}
}
}
setOnTouchLister์ Motion ๊ฐ์ง ๊ณผ์ ์ ์๊ณ ์ถ์ด์ ์ง์ ๊ตฌํํ๊ณ Log.d๋ก ์ถ๋ ฅํด๋ณด๋๋ฐ ํ๋ฉด์ ์ฒ์ ๋๋ ์ ๋๋ง ๋ก๊ทธ๊ฐ ์ฐํ๊ณ ์๊ฐ๋ฝ์ ์์ง์ด๊ฑฐ๋ ๋ ์ ๋๋ ๋ก๊ทธ๊ฐ ์ฐํ์ง ์๊ธธ๋ ์ด๋ฆฌ๋ฅ์ ํ๋ ๋์ค return ๊ฐ์ true๋ก ๋ณ๊ฒฝํด ์ฃผ์๋๋ ์ ์์ ์ผ๋ก ๋ก๊ทธ๊ฐ ์ฐํ๋ค. ์ฒซ ๋ฒ์งธ ์ฌ์ง์ด return@setOnTouchListener false์ด๊ณ ๋ ๋ฒ์งธ ์ฌ์ง์ด return@setOnTouchListener True์ด๋ค.
์ ๋ฆฌํ์๋ฉด true๋ ๋ฐ์ํ ํฐ์น ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํ์ง ์๊ณ ๋๋ด๊ณ , false๋ ๋ฐ์ํ ํฐ์น ์ด๋ฒคํธ๋ฅผ ์ดํ์ ๊ณผ์ (onTouch -> onClick -> onLongClick)๊น์ง ์ ๋ฌํ๊ฒ ๋๋ค.