EnterTransitionCoordinator
共有要素遷移の使用中にメモリ リークの問題が発生しました。以下に、アプリの構造を示します。
2 つの画面があり、最初はActivity
withDrawerLayout
といくつかFragment
の s です。それらの 1 つは写真のリストで構成され、特定の写真をクリックすると、別のFragment
からへの共有要素遷移がトリガーされます。これら 2 つの s を終了して再入力するときにカスタムを使用して、共有要素の遷移を正しくマッピングしています。この素晴らしいブログ投稿に基づいてコードを作成しました: https://android.jlelse.eu/dynamic-shared-element-transition-23428f62a2afViewPager
Activity
SharedElementCallback
Activity
View
ViewPager
問題は、のアイテム間をスワイプした後Fragment
、 が破棄されているのに、View
共有要素の遷移に使用されている がActivity
のActivityTransitionState
、特に に保持されていることEnterTransitionCoordinator
です。Activity
withに再入力してからDrawerLayout
別の を開く場合も同様Fragment
です。View
共有要素の遷移に使用されるへの参照は、 が破棄されActivity
ても int のままFragment
であり、メモリ リークが発生します。
私の質問: このメモリ リークを回避する良い方法はありますか?