Ok .. Ich muss etwas wirklich einfach hier übersehen, aber ich denke, ich versuche, etwas ziemlich einfach zu tun .. Einfach die Scrollleiste Position eines ScrollView auf Orientierungsänderung halten ...ScrollView .scrollTo funktioniert nicht? Speichern von ScrollView-Position bei Rotation
Hier ist der Code für meine onSaveInstanceState und OnRestoreInstanceState .. sView ist der Container für das ScrollView-Layout. In meinem scrollview ist ein lineares Layout mit vielen Textansichten.
@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);
}
Wenn ich einen Toast mit den Werten von sViewX und sViewY auf der Wiederherstellung festgelegt, werden die Werte gehalten und richtig ist.
Edit: Ich habe gerade versucht, eine sView.ScrollTo (0,150); in meinem onCreate .. nur um zu sehen, ob das würde die Aktivität bei 150px nach unten öffnen, und es tat es nicht. Ich denke, mein Problem hat mit der .scrollTo-Methode zu tun.
Wenn Sie als Referenz Fragmente verwenden, muss onRestoreInstanceState in die onActivityCreated() -Methode gehen. Denken Sie auch daran zu überprüfen: if (savedInstanceState! = Null) –