Проблемы с прокруткой Android 28.0.0 v7 RecyclerView - PullRequest
0 голосов
/ 17 декабря 2018

Не могу понять, что там происходит.

Недавно обновленный RecyclerView от предыдущего API-23 до API-28 и соответствующих библиотек support-v7.

Поскольку динамическое содержимое добавляется в виде представлений в RecyclerView в направлении снизу, RecyclerView автоматически прокручивается до самого верха.

Главная страница моего приложения, одна после всплывающей страницы, имеет 4 вкладки - фрагментыразмещен в типичном ViewPager с настройкой панели вкладок и все.Каждый фрагмент содержит RecyclerView, поддерживаемый типичным RecyclerView.Adapter.

Здесь есть сложная часть, по крайней мере от 4 до 6 «разных» типов представления, которые эти адаптеры внедряют в RecyclerView.Рекомендуемое содержание, реклама Google, некоторая форма новейшего содержимого, спонсорское содержимое от стороннего спонсора, содержимое видео по запросу, содержимое баннера и т. Д. И т. Д.

Как минимум, рекомендуемое содержимое, реклама Google иСпонсорский контент является обязательным, за ним следует любой последний контент, который может включать или не включать также контент по требованию.Каждый тип контента является независимой конечной точкой API RESTful, ответные обратные вызовы публикуются и подписываются через платформу Otto-EventBus, а Adapter заполняется по мере получения ответов.

В этом и заключается проблема.Ответ на Рекомендуемое содержимое может быть или не быть первым ответом, обновленным для Адаптера.Google Ad может быть или не быть первым или последним ответом, обновленным для Адаптера.Так же и с рекламным контентом.Независимо от порядка, в котором ответы заполняются в адаптере для отображения, предыдущий API-23 просто отлично работал с notifyDataSetChanged ().

Текущий API-28 автоматически прокручивает RecyclerView наверх, даже после использованияDiffUtil для каждого ответа RESTful-API, обновляемого для адаптера.Я исчерпал все свои варианты и решения, чтобы предотвратить автоматическую настройку RecyclerView с помощью прокрутки вверх.

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

1 Ответ

0 голосов
/ 17 декабря 2018

Попробуйте использовать это, вместо уведомления об изменении всего набора данных.

notifyItemChanged(position);
...