2010-09-15 44 views
38

tôi có một WebView trong ứng dụng của tôi với chiều rộng và chiều cao wrap_contentWebView rõ ràng nội dung

trước khi tôi sử dụng webview.loadData, chiều rộng và chiều cao của nó là 0,

sau khi tôi tải một url (hoặc tôi sử dụng webview.loadData), nó sẽ hiển thị một trang web.

câu hỏi của tôi là, làm thế nào tôi có thể xóa webview để khôi phục lại nó trở lại tình trạng ban đầu, giống như

trước khi nó loadData ??

+0

có thể sao chép, http://stackoverflow.com/questions/8939530/how-do-i-clear-previous-webviews-content-before-loading-the-next-webview/25452749#25452749 –

Trả lời

1

Tôi đã sử dụng phương thức clearView(), tuy nhiên hiện tại tôi gặp sự cố khi tôi tảiData() ngay sau đó, dường như nó không tải dữ liệu.

62

tôi tìm thấy câu trả lời này khá hữu ích: How do I clear a WebView's content before loading a page?

đã cho ca cao nhưng về cơ bản chỉ cần gọi:

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

Nhưng, bằng cách sử dụng cách tiếp cận như vậy, điều này dường như có hành vi, bạn cần phải nhấn nút quay lại hai lần (tôi nghĩ rằng thêm là cho trang trống), để điều hướng nội dung webview trước đó. Có một cuộc thảo luận http://stackoverflow.com/a/8939753/72437 nhưng tôi không tìm thấy nó hoạt động cho tôi. –

+0

@CheokYanCheng Tôi đang sử dụng webView.clearView(). Tôi biết, nó không được chấp nhận, nhưng giải pháp này chỉ chấp nhận được cho tôi bây giờ – Dehimb

4

WebView.clearView();

Thao tác này sẽ xóa chế độ xem khỏi chế độ xem web.

+3

Cảnh báo: Không được chấp nhận. Sử dụng WebView.loadUrl ("about: blank") để đặt lại một cách đáng tin cậy trạng thái xem và phát hành tài nguyên trang (bao gồm mọi JavaScript đang chạy). – vipsy

2

sử dụng sau tuyên bố trước loadData:

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

kịch bản ở trên là thần gửi .... khoảng: trống và sau đó đi lại nhận được hơi say đã thực sự bực bội ... –

42

Các giải pháp hoàn chỉnh duy nhất là để kiểm tra phiên bản SDK.

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

giải pháp này đã giúp tôi witht với 'webView.destroyDrawingCache();' bây giờ hoạt động tốt trên tất cả các phiên bản. Nếu không có bộ nhớ cache bị phá hủy thì nội dung cũ sẽ nhấp nháy trên 4.4. + Androids – xitx

+2

WebView.clearView() không được dùng nữa, hãy sử dụng loadUrl ('about: blank ") thay vì Nguồn: http://developer.android.com/reference/android/webkit /WebView.html#clearView%28%29 –

+1

Khi @HugoGresse gợi ý, hãy sử dụng 'webView.loadUrl (" about: blank ")' cho tất cả các phiên bản SDK. 'WebView.clearView()' thường không hoạt động chính xác nếu Javascript là chạy, ngay cả trong phiên bản SDK <18. –

0

Điều gì về loadUrl ("about: blank"), và sau đó clearHistory()?

+0

Đó là một gợi ý cho câu trả lời. Tự tin không phải là 100%. – HelloWorld

Các vấn đề liên quan