0

Also Jungs. Ich habe ein Problem, ich erstelle eine Anwendung und während die Webansicht geladen ist, erscheint eine ProgressBar vor dem Inhalt, siehe meinen Code. Das Problem ist, dass beim Starten der App eine weiße Aktivität anstelle der Webansicht erscheint, wenn die ProgressBar nicht angezeigt wird. Folgt dem Code.WebView und ProgressBar nicht angezeigt

<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> 

JETZT MEINE KLASSE: // CODE WebView

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); 
     } 
    }); 


}` 
+0

Dies ist ein nur auf Englisch Website; Bitte bearbeiten Sie Ihre Frage in Englisch. – Undo

+0

Ich habe die Frage bearbeitet !! Es tut uns leid... –

Antwort

0

Ihre Wurzel FrameLayout gesetzt Höhe 0DP, dh android:layout_height="0dp", aber hat es Gewicht auf 1, android:layout_weight="1", sind Sie sicher, dass, wenn sein in einem LinearLayout? Wenn nicht die Höhe zu android:layout_height="match_parent" oder etwas ändern.

Außerdem legen Sie den Client zweimal fest. myWebView.setWebViewClient(new WebViewClient() {...}); zwei mal im Code.

Tun Sie dies stattdessen.

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); 
    } 
}); 
0

Setzen Sie den progressbar innen FrameLayout und FrameLayout unter WebView, so dass die progressBar auch auf dem Bildschirm bleiben, wenn Sie die WebView blättern ...

<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>