본문

[2018.07.14] 107. ScrollView Top 확인방법과 주의할 점

도입 

이번 포스팅에서는 ScrollView의 Top 확인 방법과 주의할 점에 대해 알아볼 예정이다.


개념

추후 정리


실습

Step1. Xml ScrollView 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<ScrollView
    android:id="@+id/scroll_view"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="8"
    >
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
 
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/content"/>
 
    </LinearLayout>
 
</ScrollView>
cs


Step2. ScrollView Listener 설정

1
2
3
4
scroll_view.setOnScrollChangeListener({ view, scrollX, scrollY, oldScrollX, oldScrollY ->
    if (scroll_view.scrollY == 0)
        Toast.makeText(MainActivity@ this"Top", Toast.LENGTH_SHORT).show()
})
cs

여기서 내가했던 실수는 setOnScrollChangeListener가 아닌 viewTreeObserver를 통해 Listener를 추가한 것이다. 아래서 차이점에 대해 정리할 예정이다.


주의할 점

viewTreeObserver.addOnScrollChangedListener VS view.setOnScrollChangeListener

viewTreeObserver를 사용하면 위에 다른 view가 올라와 있더라도 모든 Touch를 처리한다. 이름에서 알 수 있듯이 모든 처리를 추적한다.

viewTreeObserver.addOnScrollChangedListener

view.setOnScrollChangeListener



#ScrollView #ScrollView top #addOnScrollChangedListener #setOnScrollChangeListener

공유

댓글