Wook No.1
Android ScrollView 보이는 영역 체크 본문
RecyclerView는 LayoutMager에서 제공하는 함수를 통해 현재 보이는 영역을 체크할수 있다.
(findFirstVisibleItemPosition, findLastVisibleItemPosition)
ScrollView는 체크하고 싶은 View가 보이는지 확인 하려면 getLocalVisibleRect 함수를 통해 노출여부를 확인 하면 된다.
val scrollBounds = Rect()
scrollMain.getHitRect(scrollBounds)
scrollMain.setOnScrollChangeListener{ v, scrollX, scrollY, oldScrollX, oldScrollY ->
if(checkView.getLocalVisibleRect(scrollBounds)) {
// checkView Visible
}
}
커스텀 checkView를 만들어서 안에 있는 Child View가 보이는지 체크하기 위해서는 rect의 top, bottom 사이에 있는지 확인 하는 방법으로 처리 할수 있다.
val scrollBounds = Rect()
scrollMain.getHitRect(scrollBounds)
scrollMain.setOnScrollChangeListener{ v, scrollX, scrollY, oldScrollX, oldScrollY ->
if(checkView.getLocalVisibleRect(scrollBounds)) {
if(visibleCheckChildView(checkView, scrollBounds) {
// check visible childView
}
}
}
fun visibleCheckChildView(checkView: View, scrollBounds: Rect): Boolean {
val checkChildView = checkView.findViewById(View)(R.id.child_view) // childview id
return (checkView.top in scrollBounds.top..scrollBounds.bottom)
|| (checkView.bottom in scrollBounds.top..scrollBounds.bottom)
}
'Android' 카테고리의 다른 글
Android InAppReview (0) | 2024.08.06 |
---|---|
카카오톡 로그인 AuthError statusCode=302 KakaoTalk is installed but not connected to Kakao account. (0) | 2023.04.20 |
[에러]Unknown host CPU architecture: arm64 , Android NDK (0) | 2023.02.06 |
Webview 파일 다운로드 (0) | 2022.12.26 |
Gradle Repository 등록시 프로토콜 보안 오류 (0) | 2022.09.15 |
Comments