2012-11-19 30 views
3

我試圖用這個解決方案 Android WebView progress bar設置全屏的WebView的Android進度條

這給了我

final ProgressBar Pbar; 
    Pbar = (ProgressBar) findViewById(R.id.pB1); 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.layout_browser); 
    browser=(WebView)findViewById(R.id.layout_browser); 

    browser.getSettings().setJavaScriptEnabled(true); 
    browser.getSettings().setPluginsEnabled(true); 
    browser.getSettings().setPluginState(WebSettings.PluginState.ON); 

    browser.setWebChromeClient(new WebChromeClient() { 
     public void onProgressChanged(WebView view, int progress) 
      { 
      if(progress < 100 && Pbar.getVisibility() == ProgressBar.GONE){ 
       Pbar.setVisibility(ProgressBar.VISIBLE); 
      } 
      Pbar.setProgress(progress); 
      if(progress == 100) { 
       Pbar.setVisibility(ProgressBar.GONE); 
      } 
     } 
    }); 

    browser.loadUrl("google.com"); 

,並添加一個進度條在我的WebView佈局,但它崩潰了,爲什麼呢?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<ProgressBar android:id="@+id/pB1" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true" 
    android:padding="2dip"> 
</ProgressBar> 
<WebView android:id="@+id/layout_browser" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
/> 
</RelativeLayout> 

注:我會隱藏自己的狀態欄,這就是爲什麼我試圖用這種方法

回答

2

此行Pbar = (ProgressBar) findViewById(R.id.pB1);後應setContentView(R.layout.layout_browser);

喜歡的東西,

setContentView(R.layout.layout_browser); 
Pbar = (ProgressBar) findViewById(R.id.pB1); 
+0

好,謝謝它現在可以工作,但我無法在模擬器中看到進度條 –

+0

因爲您的'ProgressBar'隱藏在'WebView'背後。首先在佈局Xml文件中更改代碼,然後是「ProgressBar」。 – user370305

+0

它先崩潰了,如果我把webview第一,任何想法? –