Хорошо.. Я должен упускать из виду что-то реальное просто здесь, но я думаю, что я пытаюсь сделать что-то довольно простое. Просто сохраните положение полосы прокрутки ScrollView при изменении ориентации...
Вот код для моего onSaveInstanceState и onRestoreInstanceState.. sView - это контейнер для макета ScrollView. В моем scrollview есть linearlayout с большим количеством текстовых просмотров.
@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);
}
Если я устанавливаю Toast со значениями sViewX и sViewY в Restore, значения сохраняются и корректируются.
Изменить: я просто попытался сделать sView.scrollTo(0,150); в моем onCreate.. просто посмотреть, откроет ли это активность на 150 пикселей вниз, и это не так. Я думаю, что моя проблема связана с методом .scrollTo.