Android
945. (Android/Java) [간단 소스] 안드로이드 Webview 웹뷰 setOnScrollChangeListener 사용해 웹 화면 스크롤 이벤트 감지 수행
투케이2K
2025. 2. 2. 09:24
[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Java / 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" />
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------
// [WebView 객체 생성 수행]
WebView main_webview = (WebView) findViewById(R.id.main_webview);
// [Web 화면 내 스크롤 이벤트 감지를 위한 이벤트 리스너 등록]
main_webview.setOnScrollChangeListener(new View.OnScrollChangeListener(){ // TODO [웹뷰 스크롤 이벤트 발생 확인]
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
S_Log.w("WEB_SCROLL", ">>>>>>>>>>>>>>>>> [scrollY] :: " + String.valueOf(scrollY) + " / [scrollX] :: " + String.valueOf(scrollX) + " >>>>>>>>>>>>>>>>>");
if (scrollY == 0){ // TODO [최상단 인 경우]
refreshLayout.setEnabled(true); // [새로 고침 활성 처리]
}
else { // TODO [스크롤 화면이 내려간 경우]
refreshLayout.setEnabled(false); // [새로 고침 비활성 처리]
}
}
});
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[결과 출력]
// --------------------------------------------------------------------------------------
W/WEB_SCROLL: >>>>>>>>>>>>>>>>> [scrollY] :: 1 / [scrollX] :: 0 >>>>>>>>>>>>>>>>>
W/WEB_SCROLL: >>>>>>>>>>>>>>>>> [scrollY] :: 23 / [scrollX] :: 0 >>>>>>>>>>>>>>>>>
W/WEB_SCROLL: >>>>>>>>>>>>>>>>> [scrollY] :: 81 / [scrollX] :: 0 >>>>>>>>>>>>>>>>>
W/WEB_SCROLL: >>>>>>>>>>>>>>>>> [scrollY] :: 111 / [scrollX] :: 0 >>>>>>>>>>>>>>>>>
W/WEB_SCROLL: >>>>>>>>>>>>>>>>> [scrollY] :: 136 / [scrollX] :: 0 >>>>>>>>>>>>>>>>>
......
// --------------------------------------------------------------------------------------
반응형