Saltar al contenido

Agregar pull para actualizar en webview para actualizar

Te damos la bienvenida a proyecto online, en este sitio hallarás la resolución de lo que buscabas.

Solución:

Puede ajustar la vista web en el diseño de actualización de deslizamiento de esta manera








    




En java

package com.vvhvb.hesselfeenstra.vvheerenveenseboys;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity 
WebView view;
SwipeRefreshLayout mySwipeRefreshLayout;

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mySwipeRefreshLayout = (SwipeRefreshLayout)this.findViewById(R.id.swipeContainer);
    String url ="http://heerenveenseboys.nl/";
    view=(WebView) this.findViewById(R.id.webView);
    view.getSettings().setJavaScriptEnabled(true);
    view.getSettings().setBuiltInZoomControls(true);
    view.getSettings().setDisplayZoomControls(false);
    view.setWebViewClient(new WebViewClient());
    view.loadUrl(url);

    mySwipeRefreshLayout.setOnRefreshListener(
    new SwipeRefreshLayout.OnRefreshListener() 
    @Override
    public void onRefresh() 
        view.reload();
    
    
    );




Creo que la mejor solución es usar SwipeRefreshLayout pero sin NestedScrollView dentro de él como lo describió jitinsharma, debido a este posible problema: la altura de la vista web crece indefinidamente dentro de una vista de desplazamiento anidada. Pero hay otra solución para el problema de desplazamiento según lo descrito por vizZ, para implementar ViewTreeObserver.OnScrollChangedListener.Así que la solución de trabajo debería ser algo como esto:



        

            

        


    

Parámetros de actividad:

private WebView mWebView;
private SwipeRefreshLayout mySwipeRefreshLayout;
private ViewTreeObserver.OnScrollChangedListener mOnScrollChangedListener;   

en actividad onCreate:

mWebView = (WebView) findViewById(R.id.main_web_view);
mySwipeRefreshLayout = (SwipeRefreshLayout)this.findViewById(R.id.swipeContainer);

        mySwipeRefreshLayout.setOnRefreshListener(
                new SwipeRefreshLayout.OnRefreshListener() 
                    @Override
                    public void onRefresh() 
                        mWebView.reload();
                    
                
        );

e implementos de actividad:implements AdvancedWebView.Listener

en actividad onStop :

mySwipeRefreshLayout.getViewTreeObserver().removeOnScrollChangedListener(mOnScrollChangedListener);

y actividad onStart:

 mySwipeRefreshLayout.getViewTreeObserver().addOnScrollChangedListener(mOnScrollChangedListener =
                new ViewTreeObserver.OnScrollChangedListener() 
                    @Override
                    public void onScrollChanged() 
                        if (mWebView.getScrollY() == 0)
                            mySwipeRefreshLayout.setEnabled(true);
                        else
                            mySwipeRefreshLayout.setEnabled(false);

                    
                );

valoraciones y comentarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *