【问题标题】:WebView and ProgressBar not appearingWebView 和 ProgressBar 没有出现
【发布时间】:2016-03-30 00:08:51
【问题描述】:

所以伙计们。我有一个问题,我正在创建一个应用程序,当 webview 收费时,在内容之前出现一个 ProgressBar 加载,请参阅我的代码。问题是当你启动应用程序时,有一个白色的活动代替了 webview w 没有出现 ProgressBar。跟着代码走。

<FrameLayout
            android:id="@+id/framelayout"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1">

        <WebView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/webView"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:visibility="invisible"/>

        <ProgressBar
            android:id="@+id/progress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:visibility="invisible"/>


    </FrameLayout>


    </RelativeLayout>

现在我的课: // 代码 Web 视图

final WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.loadUrl("http://www.idestudos.com.br");
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(true);
webSettings.setBuiltInZoomControls(true);

myWebView.setWebViewClient(new MyBrowser());

myWebView.setWebViewClient(new WebViewClient() {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return false;
    }
});


    myWebView.setWebViewClient(new WebViewClient(){

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon){

            ProgressBar pb = (ProgressBar) findViewById(R.id.progress);
            pb.setVisibility(View.VISIBLE);

        }

        public void onPageFinished(WebView view, String url){

            ProgressBar pb = (ProgressBar) findViewById(R.id.progress);
            pb.setVisibility(View.INVISIBLE);
            myWebView.setVisibility(View.VISIBLE);
        }
    });


}`

【问题讨论】:

  • 这是一个英文网站;请edit你的问题用英文写。
  • 我编辑了这个问题!!对不起...

标签: android webview progress-bar android-progressbar android-layout-weight


【解决方案1】:

您的根FrameLayout 的高度设置为0dp,即android:layout_height="0dp",但权重设置为1,android:layout_weight="1",您确定它是否在LinearLayout 内?如果不将高度更改为android:layout_height="match_parent" 或其他东西。

另外,您设置了两次客户端。 代码中有两次myWebView.setWebViewClient(new WebViewClient() {...});

改为这样做。

myWebView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return false;
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon){
        ProgressBar pb = (ProgressBar) findViewById(R.id.progress);
        pb.setVisibility(View.VISIBLE);
    }

    @Override
    public void onPageFinished(WebView view, String url){
        ProgressBar pb = (ProgressBar) findViewById(R.id.progress);
        pb.setVisibility(View.INVISIBLE);
        myWebView.setVisibility(View.VISIBLE);
    }
});

【讨论】:

    【解决方案2】:

    将进度条放在FrameLayout和WebView下方的FrameLayout中,这样即使滚动浏览WebView,progressBar也会留在屏幕上...

    <RelativeLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <WebView
            android:id="@+id/webView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerVertical="true"
           />
    
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="150dp">
    
               <ProgressBar
                   <!-- your progress bar here-->
                 />
    
          </FrameLayout>
    </RelativeLayout>
    

    【讨论】:

      猜你喜欢
      • 2020-02-25
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 2022-06-19
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      相关资源
      最近更新 更多