Ok .. Debo estar pasando por alto algo muy simple aquí, pero creo que estoy tratando de hacer algo bastante básico .. Simplemente mantener la posición de la barra de desplazamiento de un cambio de orientación en ScrollView ...ScrollView .scrollTo not working? Ahorro de la posición en la rotación ScrollView
Aquí está el código para mi onSaveInstanceState y onRestoreInstanceState. sView es el contenedor para el diseño de ScrollView. Dentro de mi scrollview hay una distribución lineal con muchas textviews.
@Override
public void onSaveInstanceState(Bundle outState)
{
//---save whatever you need to persist—
outState.putInt("sViewX",sView.getScrollX());
outState.putInt("sViewY",sView.getScrollY());
super.onSaveInstanceState(outState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState)
{
super.onRestoreInstanceState(savedInstanceState);
sViewX = savedInstanceState.getInt("sViewX");
sViewY = savedInstanceState.getInt("sViewY");
sView.scrollTo(sViewX, sViewY);
}
Si fijo una tostada con los valores de sViewX y sViewY en la restauración, los valores se mantienen y correcta.
Editar: Traté de hacer un sView.scrollTo (0,150); en mi onCreate ... solo para ver si eso abriría la actividad a 150px hacia abajo, y no fue así. Creo que mi problema tiene que ver con el método .scrollTo.
Como referencia, si usa fragmentos, onRestoreInstanceState tiene que ir en el método de activación de actividad(). Además, recuerde verificar: if (savedInstanceState! = Null) –