AsycListDiffer onAfterSubmitList Listener - PullRequest
       27

AsycListDiffer onAfterSubmitList Listener

1 голос
/ 25 марта 2019

Я пытаюсь вызвать recyclerView.getLayoutManager().smoothScrollToPosition(recyclerView,null,0) только после того, как mDiffer.submitlist(list) завершит "разбор" и анимацию списка обновлений / изменений.

Существует ли функция AsyncListDiffer для onAfterSubmitList(Callback callback), которую я мог бы использовать для достижения этой цели?

Если нет, то есть ли способ узнать, когда submitList() завершает свою задачу, чтобы я мог поставитьмои scrollToPosition(0) там?

1 Ответ

0 голосов
/ 25 марта 2019

Вы можете получить преимущество от registerAdapterDataObserver методов, слушая их (или то, что вам нужно), т.е.:

listAdapter.registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() {
            override fun onChanged() {
                //
            }

            override fun onItemRangeChanged(positionStart: Int, itemCount: Int) {

            }

            override fun onItemRangeChanged(positionStart: Int, itemCount: Int, payload: Any?) {

            }

            override fun onItemRangeInserted(positionStart: Int, itemCount: Int) {

            }

            override fun onItemRangeMoved(fromPosition: Int, toPosition: Int, itemCount: Int) {

            }

            override fun onItemRangeRemoved(positionStart: Int, itemCount: Int) {

            }
        })

Вы можете очистить регистр вашего adapterObserverкогда нужно, используя unregisterAdapterDataObserver.

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