Kotlin
543. (kotlin/코틀린) [간단 소스] 안드로이드 Webview 웹뷰 setOnScrollChangeListener 사용해 웹 화면 스크
투케이2K
2025. 2. 2. 09:30
[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Java / Kotlin
- 개발 툴 : AndroidStudio
- 기술 구분 : Webview / Scroll / setOnScrollChangeListener
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[사전) 필요 설정]
// --------------------------------------------------------------------------------------
[AndroidManifest.xml 파일 필요 퍼미션]
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------
// [Web 화면 내 스크롤 이벤트 감지를 위한 이벤트 리스너 등록]
if (VERSION.SDK_INT >= VERSION_CODES.M) {
main_webview!!.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY ->
// TODO [웹뷰 스크롤 이벤트 발생 확인]
S_Log.w("WebView_Scroll", ACTIVITY_NAME + " :: onScrollChange :: [scrollY] :: " + scrollY.toString() + " / [scrollX] :: " + scrollX.toString())
if (scrollY == 0) { // TODO [최상단 인 경우]
//refreshLayout.setEnabled(true); // [새로 고침 활성 처리]
} else { // TODO [스크롤 화면이 내려간 경우]
//refreshLayout.setEnabled(false); // [새로 고침 비활성 처리]
}
}
}
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[결과 출력]
// --------------------------------------------------------------------------------------
A_Webview :: onScrollChange :: [scrollY] :: 5 / [scrollX] :: 0
A_Webview :: onScrollChange :: [scrollY] :: 53 / [scrollX] :: 0
A_Webview :: onScrollChange :: [scrollY] :: 100 / [scrollX] :: 0
A_Webview :: onScrollChange :: [scrollY] :: 135 / [scrollX] :: 0
......
// --------------------------------------------------------------------------------------
반응형