본문 바로가기

안드로이드

[Android Studio] ScrollView 방향 확인 법 응용. (코틀린)

728x90

 

전에 포스팅 했던 ScrollView 의 방향을 활용해서 응용할 수 있는 코드를 포스팅 하겠습니다. 

활용 내용은 특정 위치를 계산해서 스크롤이 그 특정 뷰 보다 내려가는지 올라가는지 활용하는 것이 목표입니다. 

 

특정 뷰의 좌표를 알 수 있는 방법으로 getLocationOnScreen 을 활용한다. 

val location = IntArray(2) // Array를 준비. 
textView.getLocationOnScreen(location) 

val x = location[0] // textView 의 x 값
val y = location[1] // textView 의 y 값

 

 

 

이제 응용한다면 

내려가면서 특정 뷰의 위치를 지날 때와 , 올라가면서 특정 뷰의 위치를 지날때를 분기로 처리할 수 있다. 

    scrollView.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY ->
        val location = IntArray(2)
        textView.getLocationOnScreen(location)

        val y = location[1]

        if (scrollY > oldScrollY) {
            if (scrollY >= y) {
            // TODO
            // 내려가면서 특정 뷰 위치를 지나갈 때 
            }
        }

        if (scrollY < oldScrollY) {
            if (scrollY <= y) {
            // TODO
            // 올라가면서 틀정 뷰 위치를 지나갈 때
            }
        }
    }
}

 

 

이상입니다.