Cada vez que vuelvo a cargar una página web en mi vista web, va al principio de la página. ¿Hay alguna forma de no ir a la parte superior de la página y desplazarse nuevamente después de la recarga automática?

0
Harpreet Singh 10 may. 2019 a las 15:03

4 respuestas

La mejor respuesta

No puede hacer esto de una manera adecuada, puede lograrlo usando el método scrollTo para señalar alguna posición. Pero después de la carga automática, estará en la cima y solo podrá usar el método scrollTo.

0
Mohanraj 10 may. 2019 a las 12:16

Si ya tiene la cantidad que el usuario desplazó hacia abajo, puede usar algo como esto. Donde una vez cargado se desplazará hacia abajo al valor seleccionado con mWebView.scrollTo(0, 1000000000);

mWebView.setWebViewClient(new WebViewClient()
{
  @Override
  public void onPageFinished(WebView view, String url)
  {
    super.onPageFinished(view, url);     

    Handler lHandler = new Handler();
    lHandler.postDelayed(new Runnable()
    {             
      @Override
      public void run()
      {
        mWebView.scrollTo(0, 1000000000);
      }
    }, 200);
  } 
});
0
Jolopy 10 may. 2019 a las 12:12

Resuelto con algunas sugerencias. // en onPageFinished

x = (int) scrollview.getScaleX();
y = (int) scrollview.getScaleY();

Y

Define tu valor de x, y donde quieras

wv.reload();
wv.scrollTo(x,y);

Donde quieras

0
Harpreet Singh 10 may. 2019 a las 12:55

Puede lograr esto coordinando con su desarrollador web.

Con la ayuda de JavaScript, puede pasar parámetros a su página web cargada en WebView. Y su desarrollador web puede desplazar fácilmente su página HTML.

Para llamar al método JavaScript,

view.loadUrl("javascript:WEB_YOURMETHOD();");

Debe insertar el método de JavaScript en su URL mientras se carga.

Referencia

0
Dhruv 10 may. 2019 a las 12:21