Выход из общего элемента при переходе, когда элемент прокручивается вне поля зрения - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть RecyclerView, который отображает заголовок ViewHolder перед отображением списка сообщений адаптера ViewHolder s, основываясь на этом уроке: https://stackoverflow.com/a/26573338

У меня есть переход общего элемента наЭлемент CardView в обоих макетах, и я настроил переход на RecyclerView, используя следующие учебные пособия: https://mikescamell.com/shared-element-transitions-part-4-recyclerview/index.html и https://stackoverflow.com/a/42330954/

В общем переходе основное действие CardView расширяется дозаполните экран.Обратный переход должен поддерживать этот эффект (заголовок ViewHolder должен уменьшаться до исходного размера CardView).

Когда я перехожу от моего MainActivity к DetailActivity, переход общего элемента работаетобычно.Если заголовок ViewHolder виден, то возврат к MainActivity запускает Переход нормально.Даже если видна лишь полоска держателя заголовка, переход все же оживляет вниз за кадром.

Проблема, с которой я сталкиваюсь, - когда заголовок ViewHolder прокручивается из поля зрения, возвратный переход неработать, и вместо этого я получаю то, что похоже на анимацию затухания по умолчанию между действиями.Я хочу, чтобы это выглядело как в приведенном выше случае, когда содержимое держателя анимируется вниз за пределы экрана.

Я пытался предотвратить повторное использование заголовка ViewHolder, думая, что это может быть проблемой, но ни одно из них не изменило: recyclerView.getRecycledViewPool().setMaxRecycledViews(TYPE_HEADER, 0);, а также holder.setIsRecyclable(false);

Я попытался прокрутить до верхней части окна повторного просмотра, как это, наBackPressed, но это не работает - я думаю, вероятно, потому что действие заканчивается до того, как прокрутка может произойти: ((DetailsFragment) fragment).mLayoutManager.scrollToPosition(0);

См. https://gist.github.com/wnrosenberg/38f3da6d7488df6bc48c14ddf1078544 для примеров кода.

Любая помощь будет оценена.Спасибо.

...