Я пытаюсь в течение нескольких дней, чтобы получить решение, чтобы показать заставку при загрузке webview.
Я посмотрел вокруг, и есть несколько подходов: - активируйте активность, чтобы показать заставку, подождите несколько секунд, а затем запустите активность веб-просмотра → это не решение, так как вся загрузка снова выполняется после закрытия заставки
второй подход выглядит примерно так:
myWebView = (WebView) findViewById(R.id.webview);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
myWebView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
findViewById(R.id.webview).setVisibility(View.VISIBLE);
//hide loading image
findViewById(R.id.imageView1).setVisibility(View.GONE);
//show webview
}
});
Это работает, но опять же появляется небольшое появление белого экрана при переходе на webview. А также вы не можете контролировать время вашего заставки.
третье решение - это то, что я хотел бы сделать, но (даже после нескольких дней поиска и попытки) не знаю, как → показать заставку в одном потоке, подготовить все для веб-просмотра в другом, а затем просто переключиться на веб-просмотр,
Мой вопрос: может ли кто-нибудь показать мне, с чего начать с этого третьего решения?
Любое предложение, идеи, указатели? Есть ли способ показать заставку экрана, подготовить (раздуть) веб-просмотр в другом потоке, а затем переключиться на него после загрузки URL-адреса (и всего остального)?
Благодарю!!!
Попробуйте использовать WebChromeClient в Webview. В WebChromeClient у вас есть метод onProgressChange.
Вы можете закрыть экран заставки, когда onProgressChange сообщит вам, что страница заканчивается для загрузки.
Изменение: вы можете вызывать в своем потоке свой Url с HttpGet, например, и получать ответ. Когда вы получите ответ, вы можете загрузить webview с помощью метода loadData (...).