0

Итак, ребята. У меня проблема, я создаю приложение, и, пока веб-просмотр заряжается, появляется загрузка ProgressBar перед контентом, см. Мой код. Проблема заключается в том, что при запуске приложения вместо веб-представления появляется белая активность, а ProgressBar не появляется. Выполняет код.WebView и 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> 

ТЕПЕРЬ МОЙ КЛАСС: // КОД 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

Это только на английском языке на сайте; пожалуйста, отредактируйте ваш вопрос, который будет написан на английском языке. – Undo

+0

Я отредактировал вопрос !! Сожалею... –

ответ

0

Корневой FrameLayout имеет высоту установлен 0dp, т.е. android:layout_height="0dp", но вес установлен в 1, android:layout_weight="1", вы уверены, что, если его внутри a 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); 
    } 
}); 
0

Поместите прогрессбар внутри FrameLayout и FrameLayout ниже WebView так что Progressbar будет оставаться на экране, даже при прокрутке через WebView ...

<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> 
Смежные вопросы