Сначала вам нужно понять факты, из-за которых это происходит. Это происходит потому, что всякий раз, когда меняется ориентация вашего устройства, вызываются методы жизненного цикла 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 до изменения ориентации, вы можете использовать ее для установки позиции прокрутки вашего вида сетки.