Хорошо. Должно быть, я упускаю что-то очень простое здесь, но я думаю, что я пытаюсь сделать что-то довольно простое ... Просто сохраните положение полосы прокрутки ScrollView при изменении ориентации ...
Вот код для моих onSaveInstanceState и onRestoreInstanceState.
sView - это контейнер для макета ScrollView. Внутри моего прокрутки есть линейный макет с большим количеством текстовых представлений.
@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 .. просто чтобы увидеть, откроет ли это активность на 150px вниз, а это не так. Я думаю, что моя проблема связана с методом .scrollTo.