在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. WebView在進度條加載時顯示爲白色
- 5. 如何顯示進度條,直到數據加載爲止?
- 6. 顯示進度條直到下一個活動被加載
- 7. 顯示「加載:進度條」在Android的意圖,直到數據加載
- 8. 進度條應顯示在屏幕上,直到網頁加載完畢
- 9. 如何在網頁上顯示進度條,直到網頁完全加載?
- 10. 顯示進度條在加載列表
- 11. 顯示進度條或加載圖標,直到頁面完全加載?
- 12. jQuery選項卡隱藏直到加載
- 13. Android:如何在將數據加載到WebView時顯示進度條?
- 14. Excel加載項選項卡不顯示在功能區上
- 15. 加載時顯示進度條
- 16. 數據加載時顯示進度條
- 17. Android Webview加載時的進度條
- 18. 進度條頁面加載android webview
- 19. 加載Webview後隱藏進度條
- 20. 在webview上顯示進度對話框
- 21. 顯示下載進度條
- 22. 如何顯示進度條,直到列表加載在Windows Phone 7中?
- 23. 如何顯示進度條,直到整個aspx加載在asp.net c#
- 24. React-Native:顯示加載屏幕直到加載webview
- 25. 如何顯示進度條/消息,直到頁面組件完全加載並顯示在屏幕上
- 26. 如何顯示進度條,直到頁面完全加載到HTML5/CSS3中?
- 27. 顯示在頁面上方的進度條而Winjs.ui.listview加載
- 28. 在Datagridview上加載數據時顯示進度條
- 29. 當webpack塊在瀏覽器上加載時顯示進度條
- 30. 如何在MonoDroid上的WebView中顯示進度條
在網頁加載方面,你可以附加一個'WebViewClient'到'WebView',並找出在加載頁面時,讓你知道當你可以關閉該對話框。 – CommonsWare 2010-03-22 22:46:06
好吧,但如何重新啓動progressDialog時點擊webview內的鏈接? – 2010-10-21 22:44:37