Как использовать индикатор прогресса - PullRequest
0 голосов
/ 01 июня 2019

Я делаю приложение для Android Studio, и я добавил раскрывающийся список, чтобы обновить URL в приложении, и после этого моя индикатор выполнения не работает, я имею в виду, когда я опускаю индикатор выполнения по умолчанию, но после этого экрана отображается только пустая страницапока URL не загружен.это мой xml-файл

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <WebView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/webview"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_above="@+id/adView" />



</ScrollView>


<ProgressBar
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_gravity="center"
    android:id="@+id/progressBar"/>

и в java-файле я использую это

 myWebView.loadUrl("http://m.wahstatus.com/ws/english-status/?orderby=rand");
                WebSettings webSettings = myWebView.getSettings();
                myWebView.getSettings().setLoadWithOverviewMode(true);
                webSettings.setJavaScriptEnabled(true);
                swipeView.setColorScheme(android.R.color.holo_blue_dark,android.R.color.holo_blue_light, android.R.color.holo_green_light,android.R.color.holo_green_dark);
                swipeView.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener()
                {
                    @Override
                    public void onRefresh()
                    {
                        swipeView.setRefreshing(true);
                        ( new Handler()).postDelayed(new Runnable()
                        {
                            @Override
                            public void run()
                            {
                                swipeView.setRefreshing(false);
                                myWebView.loadUrl("http://m.wahstatus.com/ws/english-status/?orderby=rand");
                            }
                        }, 1000);
                    }

                });


                myWebView.setWebViewClient(new WebViewClient() {
                    public void onPageStarted(WebView view, String url, Bitmap favicon) {
                        super.onPageStarted(view, url, favicon);
                        findViewById(R.id.progressBar).setVisibility(View.VISIBLE);
                    }
                    @Override
                    public void onPageFinished(WebView view, String url) {
                        findViewById(R.id.progressBar).setVisibility(View.GONE);
                    }

На загруженной странице индикатор выполнения не работает

1 Ответ

0 голосов
/ 01 июня 2019

Вы должны добавить webchromeClient()

 webview.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress)   
            {
               findViewById(R.id.progressBar).setProgress(progress * 100); //Make the bar disappear after URL is loaded
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...