ScrollView .scrollTo, не работающий? Сохранение позиции ScrollView по вращению

Хорошо.. Я должен пропускать что-то реальное, простое здесь, но я думаю, что пытаюсь сделать что-то довольно основное.. Просто сохраните позицию полосы прокрутки ScrollView на изменении ориентации...

Вот код для моего onSaveInstanceState и onRestoreInstanceState.. sView является контейнером для расположения ScrollView. В моем scrollview linearlayout с большим количеством 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);

}

Если я установил Тост со значениями sViewX и sViewY на Восстановлении, значения сохранены и корректны.

Править: Я просто попытался сделать sView.scrollTo (0,150); в моем onCreate.. только, чтобы видеть, открыло ли это действие на уровне 150 пкс вниз, и оно не сделало. Я думаю, что моя проблема имеет отношение к .scrollTo методу.

44
задан kefs 16 July 2010 в 08:47
поделиться

1 ответ

Я разобрался.

Поскольку я использую setText для TextViews в моем onCreate , вызов .scrollTo не сработает.

Теперь я использую следующее:

sView.post(new Runnable() {
    @Override
    public void run() {
        sView.scrollTo(sViewX, sViewY);
    } 
});
122
ответ дан 26 November 2019 в 21:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: