簡體   English   中英

將ProgressBar添加到Webview-Android

[英]Adding a ProgressBar into Webview - Android

那里也有類似的問題,但是我是一個新手,並且因為每個人都有不同的編碼風格而感到困惑...我希望在“啟動畫面”之后顯示進度條,而不是在白色屏幕上顯示10秒鍾,而每次點擊鏈接...

我不知道該如何實施? 我沒有使用webchromeclient或其他任何東西。 還在學習。 這是我的代碼;

XML中的ProgressBar;

<ProgressBar
    android:id="@+id/progressBar1"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="23dp"
    android:layout_marginTop="20dp"
    android:indeterminate="false"
    android:max="100"
    android:minHeight="50dp"
    android:minWidth="200dp"
    android:progress="1" />

我的Java代碼;

public class SecondActivity extends Activity {

 private WebView myWebView;
 private ProgressBar progressBar;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.secondlayout);
    String url = "http://ythaber.com/";

    myWebView = (WebView) this.findViewById(R.id.webView1);
    progressBar = (ProgressBar) findViewById(R.id.progressBar1);

    myWebView.setWebViewClient(new WebViewClient());
    myWebView.getSettings().setJavaScriptEnabled(true);
    myWebView.loadUrl(url);
    myWebView.getSettings().setLoadsImagesAutomatically(true);

}

@Override
// Detect when the back button is pressed
public void onBackPressed() {
    if (myWebView.canGoBack())
        myWebView.goBack();
    else if (myWebView.canGoForward())
        myWebView.goForward();
    }
}

謝謝DG

像這樣實現: onCreate()

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

setContentView(R.layout.web_view);

web_view = (WebView) findViewById(R.id.web_view);
pd = new ProgressDialog(Activity.this);
pd.setMessage("Please wait Loading...");
pd.show();
web_view.setWebViewClient(new MyWebViewClient());
web_view.setWebViewClient(new WebViewClient());
web_view.getSettings().setJavaScriptEnabled(true);
web_view.getSettings().setLoadsImagesAutomatically(true);
web_view.loadUrl("ur site name");
}

WebViewClient

private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);

if (!pd.isShowing()) {
 pd.show();
}

return true;
}

@Override
public void onPageFinished(WebView view, String url) {
System.out.println("on finish");
if (pd.isShowing()) {
  pd.dismiss();
 }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM