Подтвердить что ты не робот

Как управлять экраном "Белая загрузка" в Android Webview?

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

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

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

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

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

Спасибо!

4b9b3361

Ответ 2

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

webview.setBackgroundColor(0x00000000); 

Ответ 3

Просто введите этот код в 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
        }
       }

      });

Ответ 4

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

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