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