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

......

// --------------------------------------------------------------------------------------

 

반응형