컴퓨터/이론: 안드로이드
[2018.07.14] 107. ScrollView Top 확인방법과 주의할 점
heepie
2018. 7. 14. 19:24
도입
이번 포스팅에서는 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