Панель прогресса в Android webview

#java #android #webview #progress-bar

#java #Android #webview #индикатор выполнения

Вопрос:

Я довольно новичок в разработке приложений для Android. По сути, я создаю шаблон webview для отображения разных URL-адресов, где веб-сайты оптимизированы для мобильных устройств.

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

Я проработал несколько руководств, и эта часть действительно работает, так что проблема в том…

Я хочу показать индикатор выполнения, когда webview загружает веб-сайт, который затем исчезает, когда веб-сайты были загружены.

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

Файл XML:
В принципе, есть webview с ID: и индикатор выполнения с ID:progressbar (не уверен, что это должно быть там)

Файл JAVA:
Ссылка на предварительный просмотр файла java

Ответ №1:

Вы забыли добавить ProgressBar поддержку.

Добавьте приведенную ниже инструкцию перед setContentView(R.layout.layout_file) ;

 // Adds Progrss bar Support
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
  

Затем после вызова setContentView(R.layout.layout_file); добавьте эту строку, чтобы сделать progressbar видимым

 // Makes Progress bar Visible
getWindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON);
  

Теперь внутри onProgressChanged(WebView view, int progress) вам нужно добавить следующие строки :

 //Make the bar disappear after URL is loaded, and changes string to Loading...
MyActivity.setTitle("Loading...");
MyActivity.setProgress(progress * 100); //Make the bar disappear after URL is loaded

// Return the app name after finish loading
    if(progress == 100)
         MyActivity.setTitle(R.string.app_name);
  

Вы можете ознакомиться с полным руководством здесь: ProgressBar в WebView. Я ссылался только на код с этого веб-сайта.

Редактировать

Другой пример из официальных документов Android WebView

Комментарии:

1. Может быть, я просто глуп, но я действительно не могу заставить это работать. Возможно ли, что вы можете создать рабочий Java-файл? Есть ли что-то, что мне нужно изменить в XML?

Ответ №2:

Вы можете сделать это с помощью этого, добавив новое свойство в свой Activity:

 protected ProgressDialog dialog;
  

Когда вы собираетесь открыть веб, добавьте это:

 dialog = ProgressDialog.show(this, "LOADING", "Website is loading...", true);
YourWebView.loadUrl(url);

/* Prevent WebView from Opening the Browser */
YourWebView.setWebViewClient(new InsideWebViewClient());
  

А затем необходимо расширить класс WebViewClient и добавить в метод onPageFinished:

 protected class InsideWebViewClient extends WebViewClient {
  @Override
  public void onPageFinished(WebView view, String url)
  {
    super.onPageFinished(view, url);
    if(dialog != null amp;amp; dialog.isShowing())
        dialog.dismiss();
  }
}