在全屏webview Android中设置进度条

时间:2012-11-19 12:29:28

标签: android webview progress-bar progress

我试图使用这个解决方案 Android WebView progress bar

给了我

    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>

注意:我会隐藏我的状态栏,这就是我尝试使用此方法的原因

1 个答案:

答案 0 :(得分:2)

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

之后

类似的东西,

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