android中带有web视图的进度条存在问题

android中带有web视图的进度条存在问题,android,android-webview,android-progressbar,Android,Android Webview,Android Progressbar,我已经开发了一个应用程序,它有一个web视图和一个进度条,所以我想添加一些功能,比如在加载网页的进度条中显示进度,以便它如何实现我在这里输入的代码 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); web = (WebView) findViewB

我已经开发了一个应用程序,它有一个web视图和一个进度条,所以我想添加一些功能,比如在加载网页的进度条中显示进度,以便它如何实现我在这里输入的代码

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        web = (WebView) findViewById(R.id.web);
        progressBar = (ProgressBar) findViewById(R.id.progrss);

        web.setWebViewClient(new myWebClient());
        web.getSettings().setJavaScriptEnabled(true);
        web.loadUrl("http://www.technotalkative.com");
    }

    public class myWebClient extends WebViewClient {



        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            super.onPageStarted(view, url, favicon);
        }
        @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    // TODO Auto-generated method stub

                    view.loadUrl(url);
                    return true;

                }
        @Override
                public void onPageFinished(WebView view, String url) {
                    // TODO Auto-generated method stub
                    super.onPageFinished(view, url);

                    progressBar.setVisibility(View.GONE);
                }
    }


}


layout file..

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:orientation="vertical" >

     <ProgressBar 
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_gravity="center"
        android:id="@+id/progrss"
        style="?android:attr/progressBarStyleHorizontal"
        android:progressDrawable="@drawable/blue_progressbar"

        />      

    <WebView
        android:id="@+id/web"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_weight="1">
    </WebView>



 </LinearLayout>
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web=(WebView)findviewbyd(R.id.web);
progressBar=(progressBar)findViewById(R.id.progrss);
setWebViewClient(新的myWebClient());
web.getSettings().setJavaScriptEnabled(true);
web.loadUrl(“http://www.technotalkative.com");
}
公共类myWebClient扩展了WebViewClient{
@凌驾
public void onPageStarted(WebView视图、字符串url、位图favicon){
//TODO自动生成的方法存根
super.onPageStarted(视图、url、favicon);
}
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
//TODO自动生成的方法存根
view.loadUrl(url);
返回true;
}
@凌驾
公共void onPageFinished(WebView视图,字符串url){
//TODO自动生成的方法存根
super.onPageFinished(视图、url);
progressBar.setVisibility(View.GONE);
}
}
}
布局文件。。

准备你的
进度条

 progressBar.setProgress(0);
 probressbar.setMax(100);
您应该使用设置中间进度

progressBar.setProgress(int);
并实现您的
WebViewClient
,如下所示:

web.setWebViewClient(new myWebClient());
//add this below line
web.setWebChromeClient(new WebChromeClient() {
 public void onProgressChanged(WebView view, int progress) {
    progressBar.setProgress(progress);

 if (progresss == 100) {
 progressBar.setVisibility(View.GONE);

 } else{
 progressBar.setVisibility(View.VISIBLE);

 }
 }
});
使用下面的类。加载时将显示进度条 这个网页


在ProgressBar的xml文件中设置进度

 <ProgressBar 
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:layout_gravity="center"
    android:id="@+id/progrss"
    android:progress="100"
    style="?android:attr/progressBarStyleHorizontal"
    android:progressDrawable="@drawable/blue_progressbar"

    />

那么问题是什么呢?问题是什么?问题是它没有显示进度,只是显示进度。请使用水平PB或圆圈类型???但我想在页面顶部使用水平样式,如线条
 <ProgressBar 
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:layout_gravity="center"
    android:id="@+id/progrss"
    android:progress="100"
    style="?android:attr/progressBarStyleHorizontal"
    android:progressDrawable="@drawable/blue_progressbar"

    />
web.setWebViewClient(new myWebClient());
web.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
progressBar.setProgress(progress);
}
});