zoukankan      html  css  js  c++  java
  • 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 >
  • 相关阅读:
    DS博客作业02—线性表
    DS博客作业01--日期抽象数据类型
    c语言第六次作业---结构体&文件
    c语言博客05--指针
    c语言博客作业04--数组
    DS博客作业08-课程总结
    DS博客作业07--查找
    DS博客作业06--图
    DS博客作业-05--树
    DS-博客作业03--栈和队列
  • 原文地址:https://www.cnblogs.com/lianxu61/p/4002155.html
Copyright © 2011-2022 走看看