Сетка Просмотр обработки вращения - PullRequest
0 голосов
/ 24 апреля 2018

У меня небольшая проблема. У меня gridView в основной деятельности, и при повороте устройства список всегда будет начинаться сверху. Мне нравится несколько решений, но ни одно из них не работает для gridView. Как я могу сохранить ту же позицию gridView при вращении устройства, используя onSavedInstanceState?

Спасибо заранее. :)

1 Ответ

0 голосов
/ 24 апреля 2018

Сначала вам нужно понять факты, из-за которых это происходит. Это происходит потому, что всякий раз, когда меняется ориентация вашего устройства, вызываются методы жизненного цикла onDestroy () и onCreate (). Чтобы пережить состояние активности с помощью onSaveInstanceState, вам нужно сохранить позицию прокрутки в виде сетки при вызове onDestroy (), а затем извлечь ее в вашем методе onCreate (). Вы можете сделать это с помощью Bundle. Код будет выглядеть примерно так: onSaveInstanceState () будет вызываться Android OS до того, как ваша деятельность будет уничтожена \ n

     @Override
     onSaveInstanceState(Bundle bundle){
        super.onSaveInstanceState(bundle);          
        bundle.putInt("SCROLL_VIEW_POSITION",scroll_position);
    }

   //And in your on Create
   onCreate(Bundle saveInstanceState){
       super.onCreate(saveInstanceState);
       int scrollPosition = saveInstanceState.get("SCROLL_VIEW_POSITION",default_value);
   }

Как только вы получите ту же самую позицию scrollPosition до изменения ориентации, вы можете использовать ее для установки позиции прокрутки вашего вида сетки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...