마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 webview progress bar 사용중인데 progress bar가 없어지지 않습니다.

0 추천

소스는 아래와 같습니다. 아래 소스 대로면 onPageFinished 에서 progress bar가 사라져야 정상인데

progress bar가 끝까지 찬 상태에서 없어지지 않고 계속 유지하고 있네요.

혹시 불러오는 홈페이지 문제인가 싶어 네이버 모바일을 불러왔는데도 그러는 게 아마 소스쪽 문제인것

같습니다. 혹시 원인이 무엇인지 조언 주시면 큰 도움 될 것 같습니다.

감사합니다. (안드로이드 스튜디오 1.5.1 사용중입니다.)

 

public class MainActivity extends AppCompatActivity {

    private ProgressBar progressBar;
    private String site;
    private WebView WebView01;
    private String mCurrentUrl;
    /**
     * ATTENTION: This was auto-generated to implement the App Indexing API.
     * See https://g.co/AppIndexing/AndroidStudio for more information.
     */
    private GoogleApiClient client;

    @Override
    protected void onCreate(Bundle savedInstanceState) {



        super.onCreate(savedInstanceState);
        getWindow().requestFeature(Window.FEATURE_PROGRESS);

        setContentView(R.layout.activity_main);
    
        progressBar = (ProgressBar) this.findViewById(R.id.pro);
        site = "http://m.naver.com";
        WebView01 = (WebView) findViewById(R.id.webView1);
        WebView01.getSettings().setJavaScriptEnabled(true);
        WebView01.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

        //WebView01.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
        WebView01.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);

                return true;
            }


            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                progressBar.setVisibility(View.VISIBLE);
            }


            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                progressBar.setVisibility(View.INVISIBLE);
                WebView01.clearHistory();
                WebView01.clearCache(true);
            //    WebView01.clearView();
            }

            @SuppressWarnings("deprecation")
            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                super.onReceivedError(view, errorCode, description, failingUrl);
                Toast.makeText(MainActivity.this, "로딩에러" + description, Toast.LENGTH_SHORT).show();
            }

            @TargetApi(Build.VERSION_CODES.M)
            @Override
            public void onReceivedError(WebView view, WebResourceRequest req, WebResourceError rerr) {
                // Redirect to deprecated method, so you can use it in all SDK versions
                onReceivedError(view, rerr.getErrorCode(), rerr.getDescription().toString(), req.getUrl().toString());
            }


        });

        WebView01.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                progressBar.setProgress(newProgress);
            }
        });

        WebView01.loadUrl(site);
        WebView01.setWebViewClient(new WebViewClientClass());
        mCurrentUrl = null;
        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See https://g.co/AppIndexing/AndroidStudio for more information.
        client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
    }

 

봉무늬 (200 포인트) 님이 2016년 4월 11일 질문
봉무늬님이 2016년 4월 11일 수정

1개의 답변

0 추천
 
채택된 답변
setWebViewClient 두번 하셨네요

아래쪽에 WebView01.setWebViewClient(new WebViewClientClass()); 지워보세요
익명사용자 님이 2016년 4월 11일 답변
봉무늬님이 2016년 4월 12일 채택됨
와우 한번에 해결 되었네요 ㅠㅠ 감사합니다.
progress bar 문제가 해결이 되서 좋았는데 ㅠㅠ
...