Notice
Recent Posts
Recent Comments
Link
투케이2K
610. (Android/Java) SwipeRefreshLayout 사용해 웹뷰 새로 고침 상태 갱신 수행 실시 (webview reload) 본문
Android
610. (Android/Java) SwipeRefreshLayout 사용해 웹뷰 새로 고침 상태 갱신 수행 실시 (webview reload)
투케이2K 2023. 7. 31. 08:07[개발 환경 설정]
개발 툴 : AndroidStudio
[소스 코드]
=================================================================
[XML 소스 코드]
<?xml version="1.0" encoding="utf-8"?>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/refreshLayout">
<!--
[레이아웃 설명]
1. 사용하는 클래스 : A_Webview
2. 메인 화면으로 웹뷰를 호출하는 레이아웃
-->
<!-- 컴포넌트 : 웹뷰 -->
<WebView
android:id="@+id/main_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#343d46"
android:visibility="gone"/>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
=================================================================
[JAVA 소스 코드]
// ---------------------------------------------------------------
// [전역 변수 : 컴포넌트 선언]
// ---------------------------------------------------------------
WebView main_webview; // [웹뷰]
SwipeRefreshLayout refreshLayout; // [새로고침 레이아웃]
// ---------------------------------------------------------------
// [컴포넌트 매핑 수행 실시]
// ---------------------------------------------------------------
refreshLayout = (SwipeRefreshLayout) findViewById(R.id.refreshLayout);
main_webview = (WebView) findViewById(R.id.main_webview);
// ---------------------------------------------------------------
// [컴포넌트 초기 값 설정]
// ---------------------------------------------------------------
refreshLayout.setColorSchemeColors(Color.BLUE, Color.WHITE); // [새로고침 아이콘 색상 변경 : 화이트 배경 >> 파란색 새로고침 아이콘]
// ---------------------------------------------------------------
// [컴포넌트 이벤트 지정 실시]
// ---------------------------------------------------------------
refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
S_Log._W_("웹뷰 새로 고침 수행", null);
// [새로고침 소스]
main_webview.reload();
}
});
// ---------------------------------------------------------------
// [초기 웹뷰 최초 로드 수행 실시]
// ---------------------------------------------------------------
main_webview.loadUrl("https://www.naver.com");
// ---------------------------------------------------------------
// [WebViewClient : 로딩이 완료됐을 때 한번 호출]
// ---------------------------------------------------------------
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
S_Log._W_(S_FinalMsg.LOG_Loading_End, new String[]{ "URL :: " + String.valueOf(url) });
// TODO [웹뷰 새로고침 상태 변경]
refreshLayout.setRefreshing(false);
}
=================================================================
반응형
'Android' 카테고리의 다른 글
Comments