Moved gcFragments to onViewAttachedToWindow
This assures gcFragments gets executed even when a user keeps switching
between two already bound pages. This prevents a theoretical
'Fragment memory leak' in small collections.
Bug: 122669030
Test: ./gradlew viewpager:connectedCheck
Change-Id: Ifb5aa0a97cbe1a71f99e9125fb20dd5d3cd36201
diff --git a/viewpager2/src/main/java/androidx/viewpager2/adapter/FragmentStateAdapter.java b/viewpager2/src/main/java/androidx/viewpager2/adapter/FragmentStateAdapter.java
index 4c851ae..c37e953 100644
--- a/viewpager2/src/main/java/androidx/viewpager2/adapter/FragmentStateAdapter.java
+++ b/viewpager2/src/main/java/androidx/viewpager2/adapter/FragmentStateAdapter.java
@@ -220,6 +220,7 @@
@Override
public final void onViewAttachedToWindow(@NonNull final FragmentViewHolder holder) {
placeFragmentInViewHolder(holder);
+ gcFragments();
}
/**
@@ -299,8 +300,6 @@
}
});
}
-
- gcFragments();
}
private void scheduleViewAttach(final Fragment fragment, final FrameLayout container) {