2010-09-15 4 views
38

у меня есть WebView в моем приложении с шириной и высотой wrap_contentясно WebView содержание

, прежде чем я использовать webview.loadData, ширину и высоту он был 0,

после я загрузить URL (или я использую webview.loadData), он отобразит веб-страницу.

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

перед ним LoadData ??

+0

Возможное дублирование, http://stackoverflow.com/questions/8939530/how-do-i-clear-previous-webviews-content-before-loading-the-next-webview/25452749#25452749 –

ответ

1

Я использовал метод clearView(), но теперь у меня возникают проблемы, которые, когда я loadData() сразу после него, похоже, не загружают данные.

62

я нашел этот ответ очень полезным: How do I clear a WebView's content before loading a page?

было какао, но в основном просто позвонить:

webView.loadUrl("about:blank") 
+1

Но, используя такой подход, похоже, имеет поведение, вам нужно дважды нажать кнопку «Назад» (я думаю, что лишний для пустой страницы), чтобы перемещаться по веб-просмотру предыдущего контента. Там обсуждается http://stackoverflow.com/a/8939753/72437, но я не считаю, что это работает для меня. –

+0

@CheokYanCheng Я использую webView.clearView(). Я знаю, это устарело, но это только приемлемое решение для меня сейчас – Dehimb

4

WebView.clearView();

Это позволит очистить представление от веб-представления.

+3

Предупреждение: устарело. Используйте WebView.loadUrl («about: blank»), чтобы надежно сбросить состояние представления и освободить ресурсы страницы (включая любой запущенный JavaScript). – vipsy

2

использовать следующее заявление до LoadData:

view.loadUrl("javascript:document.open();document.close();"); 
+0

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

42

Единственное полное решение для проверки SDK версии.

if (Build.VERSION.SDK_INT < 18) { 
    webView.clearView(); 
} else { 
    webView.loadUrl("about:blank"); 
} 
+1

Это решение помогло мне с помощью 'webView.destroyDrawingCache();' теперь отлично работает на всех версиях. Без разрушения кэша чертежа старое содержимое мигает на 4.4. + Androids – xitx

+2

WebView.clearView() устарел, используйте loadUrl ('about: blank ") вместо Источник: http://developer.android.com/reference/android/webkit /WebView.html#clearView%28%29 –

+1

Как указывает @HugoGresse, используйте 'webView.loadUrl (« about: blank »)' для всех версий SDK. 'WebView.clearView()' часто работает неправильно, если Javascript даже в версиях SDK <18. –

0

Как насчет loadUrl («about: blank»), а затем clearHistory()?

+0

Это было предложение для ответа. Уверенность не на 100%. – HelloWorld

Смежные вопросы