在Android應用程序中,我使用TabView,其中一個選項卡顯示WebView。但是該網頁在網頁加載之前是空白的。在頁面加載之前,如何顯示進度條?它不能位於標題欄中,因爲它由標籤主機隱藏。在子選項卡上顯示進度條,直到WebView加載
4
A
回答
2
對於Android Developers website有一個非常好的教程。它顯示瞭如何創建在整個Android程序中使用的「旋轉輪」進度對話框,甚至還有一些關於如何在單獨的線程中處理加載的基礎知識,以防止應用程序在加載時凍結。
2
如果你的問題是「我怎麼找出來的時候,頁面加載?」,則:
創建WebViewClient的自定義子類,覆蓋onPageFinished()
附上您WebViewClient子類的實例通過setWebViewClient您的WebView()
設置無限期進度指示器(欄,對話框,RotateAnimation等)
progressDialog = ProgressDialog.show(this, "", getText(R.string.progressDialogText), true);
上的WebView
調用使用loadURL()之前有onPageFinished()擺脫進度指示器(progressDialog.dismiss())
15
我使用進度這一點。有了這樣的佈局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout [...]>
<WebView android:id="@+id/WebView"
android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<ProgressBar android:id="@+id/ProgressBar" android:layout_centerInParent="true"
android:layout_width="wrap_content" android:layout_height="wrap_content"
style="?android:attr/progressBarStyleLarge"
android:visibility="gone"/>
</RelativeLayout>
我隱藏和使用顯示進度指示器:
WebView webView = (WebView) findViewById(R.id.WebView);
final ProgressBar progess = (ProgressBar) findViewById(R.id.ProgressBar);
webView.setWebViewClient(new WebViewClient() {
public void onPageStarted(WebView view, String url, Bitmap favicon) {
progess.setVisibility(View.VISIBLE);
}
public void onPageFinished(WebView view, String url) {
progess.setVisibility(View.GONE);
}
}
1
初始化您的視圖後只調用此方法
startWebView(web_view,"Your Url");
這裏web_view是您的初始化的WebView對象。該startWebView()
是如下:
private void startWebView(WebView webView,String url) {
webView.setWebViewClient(new WebViewClient() {
ProgressDialog progressDialog;
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
public void onLoadResource (WebView view, String url) {
if (progressDialog == null) {
progressDialog = new ProgressDialog(SponceredDetailsActivity.this);
progressDialog.setMessage("Loading...");
progressDialog.show();
}
}
public void onPageFinished(WebView view, String url) {
try{
if (progressDialog.isShowing()) {
progressDialog.dismiss();
progressDialog = null;
}
}catch(Exception exception){
exception.printStackTrace();
}
}
});
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
}
有時,如果URL是死它會重定向,它會前onPageFinished方法來onLoadResource()。出於這個原因,進度條不會解僱。要解決此問題,請參見my this Answer。
謝謝:)
相關問題
- 1. 如何在WebView上顯示加載圖像或進度條
- 2. 如何在webview上顯示進度條?
- 3. WebView在進度條加載時顯示爲白色
- 4. 如何顯示進度條,直到數據加載爲止?
- 5. 進度條應顯示在屏幕上,直到網頁加載完畢
- 6. 顯示進度條在加載列表
- 7. jQuery選項卡隱藏直到加載
- 8. Android:如何在將數據加載到WebView時顯示進度條?
- 9. Excel加載項選項卡不顯示在功能區上
- 10. 數據加載時顯示進度條
- 11. 進度條頁面加載android webview
- 12. 加載Webview後隱藏進度條
- 13. Android Webview加載時的進度條
- 14. 在webview上顯示進度對話框
- 15. React-Native:顯示加載屏幕直到加載webview
- 16. 如何顯示進度條,直到整個aspx加載在asp.net c#
- 17. 當webpack塊在瀏覽器上加載時顯示進度條
- 18. 在Datagridview上加載數據時顯示進度條
- 19. 向webview添加進度條
- 20. 添加進度條到我的webview
- 21. 如何顯示進度欄,直到整個aspx頁面加載?
- 22. 顯示進度對話框,直到新的活動加載
- 23. AJAX進度條顯示頁面加載的進度百分比
- 24. HTML/CSS - 隱藏滾動條,直到選項卡被選中並顯示內容
- 25. 顯示進度條而圖庫加載上django的模板
- 26. JTable加載值的變化,加載時顯示進度條
- 27. 如果全屏顯示,Webview不會顯示進度條
- 28. 加載圖片顯示加載進度
- 29. JTabbedPane:在選項卡中顯示任務進度
- 30. jQueryUI選項卡顯示()在特定的選項卡上?
在網頁加載方面,你可以附加一個'WebViewClient'到'WebView',並找出在加載頁面時,讓你知道當你可以關閉該對話框。 – CommonsWare 2010-03-22 22:46:06
好吧,但如何重新啓動progressDialog時點擊webview內的鏈接? – 2010-10-21 22:44:37