Как управлять пустым белым загрузочным экраном веб-просмотра Android? - PullRequest
16 голосов
/ 14 марта 2011

Это скорее визуальная вещь, чем прямая проблема, но когда WebView загружается в мое приложение, экран остается пустым белым в течение 2-4 секунд, пока содержимое не будет полностью загружено.Время зависит от размера загружаемого контента.

Есть ли способ управлять этим, чтобы экран обновлялся до контента только при загрузке?Что-то вроде анимации "загрузка ..." или что-то подобное?Я просто не хочу, чтобы мой белый экран был представлен моим пользователям.

У меня есть заставка, которая затем загружает WebView.WebView работает нормально после этой начальной пустой паузы (при загрузке), но я хотел бы держать его на определенном экране до загрузки страницы или иметь черный экран с загрузчиком прогресса.

Есть ли что-то, чтообнаруживает, что загрузка завершена, возможно?Если бы это было так, я мог бы использовать его как триггер.

Кто-нибудь знает способ управления этим пустым белым экраном?

Спасибо!

/ r

Ответы [ 4 ]

25 голосов
/ 01 октября 2011

Вы также можете сделать веб-просмотр прозрачным:

webview.setBackgroundColor(0x00000000); 
8 голосов
/ 08 октября 2012

Просто введите этот код в onCreate

               ProgressDialog _dialog ;                   
               my_web_view.setWebViewClient(new WebViewClient(){


       @Override
       public void onPageStarted(WebView view, String url, Bitmap favicon) {
        // TODO Auto-generated method stub
        _dialog =ProgressDialog.show(Store_locator.this, "", "Please wait...");
        super.onPageStarted(view, url, favicon);
       }
       @Override
       public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);
        _dialog.dismiss();
       }

       @Override
       public void onReceivedError(WebView view, int errorCode,
         String description, String failingUrl) {
        // TODO Auto-generated method stub
        super.onReceivedError(view, errorCode, description, failingUrl);
        try{
         _dialog.dismiss();
        }catch (Exception e) {
         // TODO: handle exception
        }
       }

      });
2 голосов
/ 09 августа 2012

ответ на этот вопрос в том, что нет хорошего ответа.как вы сказали, вы хотите, чтобы веб-просмотр отображал текущий контент до тех пор, пока новый контент не будет загружен ... как в обычном браузере.это не сработает.

Вы можете показать анимацию загрузки, но это все равно не очень удобно для пользователя.Если вы делаете полноэкранный тип анимации, пользователь будет раздражен мигающими экранами.если вы продвигаетесь по типу браузера сверху / снизу, это выглядит странно, потому что большая часть страницы остается белой.

0 голосов
/ 14 марта 2011

Может быть, вы можете взглянуть на этот предыдущий выпуск.

Как прослушать WebView, заканчивающий загрузку URL?

...