GridLayoutManager не работает и не сохраняет состояние в RecyclerView-v7: 28.0.0?- что изменилось? - PullRequest
0 голосов
/ 28 ноября 2018

Итак, в настоящее время я поддерживаю усилия по разработке приложения для Android, которое ранее разрабатывалось совершенно другой группой разработчиков.

В рамках моих постоянных усилий по поддержке мы повысили TargetSdkVersion с 23 до 28и, соответственно, все зависимости и библиотеки поддержки, а также библиотеки appcompat.

Однако с обновлением библиотеки recyclerview мы начали замечать особую проблему с включенной реализацией Infinite Scrolling для RecyclerView вПриложение.

Наблюдается следующее.

  1. Запустите приложение.Перейдите к любому действию, фрагменту или представлению, на котором размещен RecyclerView.

  2. Прокрутка вверх.Нажмите на любую карту, отображаемую в RecyclerView.Запустит новое действие или фрагмент с подробной информацией внутри этой карты.

  3. Вернитесь назад, закройте существующее представление «Подробная информация».

  4. В версии 28 RecyclerView просто возвращается, показывая с начала прокрутки.Представление не выполняет автоматическую прокрутку или что-либо еще, оно представляет собой только самый первый элемент.

  5. В версии 23 RecyclerView сохранил предыдущее состояние, как в наборе дочерних элементов, которыебыл отображен до нажатия на карточку и запуска нового действия, фрагмента или вида, что было отображено без каких-либо изменений или автоматических прокруток.

  6. Худшая часть, v28, ничего не будетсохранить состояние RecyclerView.Например, вызов LayoutManager.onSaveInstanceState () в onPause (), сохранение его в качестве Parcelable и применение его в onResume () в качестве LayoutManager.onRestoreInstanceState (состояние Parcelable) не будет работать.В противном случае LayoutManager.findFirstVisibleItemPosition (), за которым следует вычисление firstVisibleItemPositionOffset в onPause () и использование их обоих в LayoutManager.smoothScrollWithOffset в onResume (), ни одна из стратегий не работает.

GridLayoutManager не работает и не сохраняет состояние в RecyclerView-v7: 28.0.0?

Какая была последняя версия, когда RecyclerView сохранял свое состояние между действиями и окнами и даже изменениями ориентации?

...