마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

GestureDetector 에서 .. 수정하면서 .

0 추천

compileSdk 33 으로 업데이트 하면서 . 

GestureDetector 에서 .. 

 

 

override fun onScroll(

    e1: MotionEvent?,

    e2: MotionEvent?,

    distanceX: Float,

    distanceY: Float

): Boolean {

 

이 

 

override fun onScroll(

    e1: MotionEvent,

    e2: MotionEvent,

    distanceX: Float,

    distanceY: Float

): Boolean {

 

처럼 null 에 대한 전달값 사라지면서 … 

자꾸null 이 들어온다고 앱이 죽습니다. 

 

 

if (e1 == null || e2 == null) {

        Timber.e("e1 or e2 is unexpectedly null!")

        return false

    }

 

식으로 안쪽에서 수정했지만 동일합니다. 

 

어떤게 대응해야 할까요? 



월래 안드로이드 개발자가 아니라 .. (시작한지 얼마 안되었네요 ) 

조언 구합니다

창현아빠 (200 포인트) 님이 2023년 9월 5일 질문

1개의 답변

0 추천
혹시 override 할 때, 힘수 선언을 원래처럼 만드시면 어떻게 되는지 확인해 보세요.
spark (229,630 포인트) 님이 2023년 9월 5일 답변
spark님이 2023년 9월 5일 수정
일단 다른 코드로 우회처리하긴 했는데 , 한번 검토해보겠습니다.

아, 추가로 .. override 된게 아니고..
fun setGesture(v : View){

        gestureDetector = GestureDetector(requireContext(), object : GestureDetector.SimpleOnGestureListener() {
            override fun onDown(e: MotionEvent): Boolean {
                downPos = e!!.y
                swipped = null
                return super.onDown(e)
            }

            override fun onScroll(
                e1: MotionEvent,
                e2: MotionEvent,
                distanceX: Float,
                distanceY: Float
            ): Boolean {

식으로 처리되어 있는 상태에서 ..

setGesture(binding.scroll) 뷰를 보내는 방식으로 처리 되어 있어서 ..
말씀 하신 방식으로 확인이 어려울듯 한데 ...
fun setGesture(v : View){

        
            ...

            // 아래 오버라이드 된 함수를 업데이트 이전 형태로 해보세요.
            override fun onScroll(
                 e1: MotionEvent?,
                e2: MotionEvent?,
                distanceX: Float,
                distanceY: Float
            ): Boolean {
...