Прогрессбар на веб-сайте Android - PullRequest
2 голосов
/ 09 ноября 2011

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

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

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

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

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

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

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

Ответы [ 2 ]

4 голосов
/ 09 ноября 2011

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

Добавить приведенный ниже оператор перед setContentView(R.layout.layout_file);

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

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

// 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 голос
/ 09 ноября 2011

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

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 && dialog.isShowing())
        dialog.dismiss();
  }
}
...