Индикация загрузки страницы в WebView

Интерфейс, диалоги, темы, стили, меню
Ответить
Pilorama
Сообщения: 8
Зарегистрирован: 27 май 2013, 19:52

Индикация загрузки страницы в WebView

Сообщение Pilorama » 06 дек 2013, 12:57

Требуется убрать индикацию ( диалог, прогресс - не важно) именно в тот момент, когда начинается фактический показ страницы. Рендеринг страницы после её загрузки занимает время и в этот момент пользователь видит чистый лист. Хотелось бы учесть этот момент. Подскажите, пожалуйста, в какую сторону копать.

Код: Выделить всё

public class WebViewClientTest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    final WebView webview = (WebView) findViewById(R.id.webview);
 
    webview.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(webview, url);
            //hide please wait dialog here
        }
    });
 
    //show please wait dialog here
 
    webview.loadUrl(URL);
 
}
}

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Индикация загрузки страницы в WebView

Сообщение altwin » 11 дек 2013, 22:59

выполнить загрузку асинхронно в другом потоке, в main показать круглый прогресбар, после загрузки показать view.
в одном потоке - сомневаюсь, поскольку открытие webview/загрузка контента занимает время, на слабых устройствах особенно, потому, только делать в фоне.
Изображение

Pilorama
Сообщения: 8
Зарегистрирован: 27 май 2013, 19:52

Re: Индикация загрузки страницы в WebView

Сообщение Pilorama » 12 дек 2013, 11:45

Спасибо за ответ. Проблема не в том как загрузить данные, а в том, что после их получения ( onPageFinished сработал ) и их ФАКТИЧЕСКОГО показа в WebView проходит время. Секунда, две, три. В это время идёт рендеринг страницы. Посетитель видит, что процесс получения данных завершён ( прогресс бар скрылся ), но WebView ещё пустой в эти самые секунды. Надо скрыть прогресс загрузки именно в тот момент, когда страница полностью отрисована и готова к показу.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Индикация загрузки страницы в WebView

Сообщение altwin » 12 дек 2013, 12:15

можно попробовать добавить в манифест -

Код: Выделить всё

android:hardwareAccelerated="true"
,
и добавить настройки -

Код: Выделить всё

this.webview.getSettings().setRenderPriority(RenderPriority.HIGH);
this.webview.getSettings().setPluginState(android.webkit.WebSettings.PluginState.ON_DEMAND);
возможно ответ стоит поискать тут - https://developers.google.com/events/io ... o2012/122/
Изображение

Ответить