더블탭을 구현해보자
“Android 로봇은 Google에서 제작하여 공유한 저작물을 복제하거나 수정한 것으로 Creative Commons 3.0 저작자 표시 라이선스의 약관에 따라 사용되었습니다.”
개요
더블탭을 사용할 일이 생겨서 구현을 하려고 한다.
처음엔 GestureDetector의 OnDoubleTabListener를 사용하려고 했으나
사용하지 않는 다른 기능까지 재정의 되어야해서
좀 더 간결하게 사용하고싶은 마음에 직접 만들어보기로 했다.
구현
우선 코드를 살펴보면..
abstract class OnTabListener : View.OnClickListener {
    // 더블탭 시간 간격
    private val INTERVAL: Long = 500
    // 마지막 탭 시간
    private var lastTabTime: Long = 0
    abstract fun onDoubleTab(v: View?)
    override fun onClick(v: View?) {
        // 탭한 시간
        val currentTabTime = SystemClock.uptimeMillis()
        // 이전에 탭한 시간과 현재시간 차이 계산
        val intervalTab = currentTabTime - lastTabTime
        // 마지막 탭 시간 업데이트
        lastTabTime = currentTabTime
        if(intervalTab <= INTERVAL) {
            onDoubleTab(v)
        }
    }
}현재 탭한 시간과 이전에 탭했던 시간을 계산해서
정해진 시간 간격 안에 들어오면 콜백을 호출하는 방식이다.
    binding.btnTab.setOnClickListener(object : OnTabListener() {
            override fun onDoubleTab(v: View?) {
                Toast.makeText(v?.context, "Double Tab", Toast.LENGTH_SHORT).show()
            }
        })사용할 View에 적용해서 실행을 해보면
아주 잘 작동하는 것을 볼 수 있다.
개인적으로 공부했던 것을 바탕으로 작성하다보니
잘못된 정보가 있을수도 있습니다.
인지하게 되면 추후 수정하겠습니다.
피드백은 언제나 환영합니다.
읽어주셔서 감사합니다.
Author And Source
이 문제에 관하여(더블탭을 구현해보자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jeep_chief_14/더블탭을-구현해보자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)