У меня проблема с утечкой памяти в EnterTransitionCoordinator
при использовании общих переходов элементов.Ниже вы можете увидеть структуру приложения:
У него 2 экрана, первый - Activity
с DrawerLayout
и несколько Fragment
с.внутри.Одна из них содержит список фотографий и щелчок по определенной фотографии запускает переход общего элемента в Fragment
из ViewPager
, расположенного в другом Activity
.Я использую пользовательские SharedElementCallback
при выходе и повторном вводе этих двух Activity
для сопоставления правильного View
для перехода с общим элементом.Я основал свой код на этом замечательном посте в блоге: https://android.jlelse.eu/dynamic-shared-element-transition-23428f62a2af
Проблема в том, что после пролистывания элементов ViewPager
, Fragment
уничтожаются, а View
используется для общего доступапереход элемента сохраняется в Activity
ActivityTransitionState
, в частности в EnterTransitionCoordinator
.То же самое при повторном входе в Activity
с DrawerLayout
и последующем открытии другого Fragment
.Ссылки на View
s, используемые для переходов совместно используемых элементов, по-прежнему хранятся в Activity
s, даже если Fragment
s были уничтожены, что приводит к утечке памяти.
Мой вопрос: есть ли хороший способ избежать этой утечки памяти?