webview的


====================问题描述====================
我给WEBVIEW加了等待的圆圈,怎么不起作用?

布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
/>
<ProgressBar android:id="@+id/progressBar"
    style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:max="100" 
android:progress="50" 
android:secondaryProgress="70" 
        android:layout_gravity="center"
        android:visibility="gone"/>
</LinearLayout>


主程序代码:
package com.ruihuo.talk;

import com.ruihuo.talk.R;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.net.http.SslError;
import android.webkit.SslErrorHandler;
import android.widget.ProgressBar;
import android.widget.Toast;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    private WebView webview;
    private ProgressBar myProgressBar;
@SuppressLint("SetJavaScriptEnabled")
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow();
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
myProgressBar = (ProgressBar)findViewById(R.id.progressBar);
myProgressBar.setIndeterminate(false);
        webview=(WebView)findViewById(R.id.webview);
        webview.setWebViewClient(new WebViewClient() {

        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){
        //handler.cancel(); // Android默认的处理方式
        handler.proceed();  // 接受所有网站的证书
        //handleMessage(Message msg); // 进行其他处理
        }
            public void onPageStarted(WebView webview, String url, Bitmap favicon) {
                super.onPageStarted(webview, url, favicon);
                myProgressBar.setVisibility(View.VISIBLE);
            }
            //加载完成时要做的工作
            public void onPageFinished(WebView webview, String url) {
            super.onPageFinished(webview, url);
            myProgressBar.setVisibility(View.GONE); 
            }
            // 加载错误时要做的工作

            public void onReceivedError(WebView webview, int errorCode,String description, String failingUrl) {
                Toast.makeText(MainActivity.this,
                                   errorCode+ "/" + description, Toast.LENGTH_LONG)
                                   .show();
            }

        });
        //去掉横向滚动条
        webview.setHorizontalScrollBarEnabled(false);
        //去掉垂直滚动条
        webview.setVerticalScrollBarEnabled(false);
        //去掉百边
        webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        //设置WebView属性,能够执行JavaScript脚本
        webview.getSettings().setJavaScriptEnabled(true);
        //加载URL内容
        webview.loadUrl("https://www.test.com/");
}
    //设置回退
    public boolean onKeyDown(int keyCode,KeyEvent event)
    {
            if((keyCode==KeyEvent.KEYCODE_BACK)&&webview.canGoBack())
            {
                    webview.goBack();
                    return true;
            }
            return super.onKeyDown(keyCode,event);
    }
    
    //web视图客户端
    public class MyWebViewClient extends WebViewClient
    {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {  
            view.loadUrl(url);  
            return true;  
        }
    }

}




希望达到的效果是,启动程序后,出现圆圈转动,等待页面加载好,圆圈就消失.目前程序可以运行,单是看不到圆圈.求解决

也就是myProgressBar.setVisibility(View.VISIBLE);
没起作用.
====================解决方案1====================
布局文件中,将ProgressBar的android:visibility="gone"改为android:visibility="invisible"
====================解决方案2====================
 myProgressBar.setIndeterminate(false);这行代码做什么的?
mIndeterminate为true的情况,去setVisible()才能有动画。
====================解决方案3====================
把linearlayout改成relativelayout ,并设置progressbar Android:centerinparent="true" 
====================解决方案4====================
引用 6 楼 lionfresh 的回复:
Quote: 引用 3 楼 ruihuo 的回复:

Quote: 引用 1 楼 lionfresh 的回复:

布局文件中,将ProgressBar的android:visibility="gone"改为android:visibility="invisible"


改这个也无效.


引用 3 楼 ruihuo 的回复:
Quote: 引用 1 楼 lionfresh 的回复:

布局文件中,将ProgressBar的android:visibility="gone"改为android:visibility="invisible"


改这个也无效.


那我建议你使用ProgressDialog来实现,进度旋转,因为你现在用的方法已经很少用了。


难道你们没有发现是布局问题吗?
====================解决方案5====================


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    />
    <ProgressBar android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:max="100" 
        android:progress="50" 
        android:secondaryProgress="70" 
        android:layout_centerInParent="true"
        android:visibility="visible"/>
</RelativeLayout >
posted @ 2014-09-30 15:57  android应用开发  阅读(140)  评论(0编辑  收藏  举报
我要啦免费统计