Ведение прокрутки позиции GridView с помощью поворота экрана

Как сохранить положение прокрутки GridView (оно заполнено результатами поиска) во время переориентации экрана?

У меня есть GridView внутри фрагмента, и когда я поворачиваю экран, он возвращается к вершине списка.

Чтобы сделать его еще более сложным, в ландшафтном режиме мой GridView имеет 3 столбца .. в портретном режиме он имеет 2 столбца.

Я не могу понять, как сохранить прорисовку GridView фрагмента в любом месте, где это должно произойти, когда меняется ориентация экрана.

Вы можете попробовать следующее:

Первоначально вы должны получить текущую позицию прокрутки GridView, вызвав:

int index = gridview.getFirstVisiblePosition(); 

Затем вам нужно сохранить это значение во время изменения ориентации и когда GridView будет создан снова, вам нужно переместить gridview на этот индекс.

Я полагаю, это может сработать:

 gridview.smoothScrollToPosition(int index) 

Надеюсь это поможет!

Вы можете использовать следующий метод, он будет работать для всех версий Android.

Чтобы сохранить текущую позицию прокрутки:

 int index = gridView.getFirstVisiblePosition(); 

Затем после изменения ориентации используйте следующий код, чтобы установить позицию gridView в сохраненный индекс:

 gridView.setSelection(index); 

Мой код //

  final int index = gridView.getFirstVisiblePosition(); gridView.post(new Runnable() { @Override public void run() { gridView.setSelection(index); } });