투케이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);

        }

=================================================================

 

반응형
Comments