0

Yani çocuklar. Bir sorunum var, bir uygulama oluşturuyorum ve web görüntülemesi ücretlendirilirken içerikten önce bir ProgressBar yükleniyor, kodumu görün. Sorun şu ki, uygulamayı başlattığınızda, ProgressBar'ın görünmediği web görünümü yerine beyaz bir etkinlik var. Kodu takip eder.WebView ve ProgressBar görünmüyor

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

MY SINIFI: // KOD 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

Bu salt İngilizce sitedir; Lütfen İngilizce olarak yazılacak sorunuzu [düzenleyin]. – Undo

+0

Soruyu düzenledim !! Afedersiniz... –

cevap

0

eğer eminseniz, android:layout_weight="1", Kök FrameLayout yüksekliği, yani 0DP için android:layout_height="0dp" belirledi, ancak kilo 1'e belirledi onun LinearLayout içinde? Yüksekliği android:layout_height="match_parent" veya başka bir şeyle değiştirmezseniz.

Ayrıca, istemciyi iki kez ayarlıyorsunuz. Kodda iki kez myWebView.setWebViewClient(new WebViewClient() {...}); var.

Bunu yerine yapın.

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

progressBar Eğer WebView'da ilerlemek bile ekranda kalacak şekilde WebView'da altında FrameLayout ve FrameLayout içindeki progressbar koyun ...

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