You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Tutorial6-0NavigationUI-ViewPager2/src/main/java/com/smarttoolfactory/tutorial6_0navigationui_viewpager2/viewpagerfragment/ViewPagerContainerFragment.kt
+16Lines changed: 16 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -48,4 +48,20 @@ class ViewPagerContainerFragment : Fragment() {
48
48
49
49
}
50
50
51
+
overridefunonDestroyView() {
52
+
53
+
val viewPager2 = dataBinding?.viewPager
54
+
55
+
/*
56
+
Without setting ViewPager2 Adapter it causes memory leak
Copy file name to clipboardExpand all lines: Tutorial6-2NavigationUI-ViewPager2-NestedNavhost/src/main/java/com/smarttoolfactory/tutorial6_2navigationui_viewpager2_nestednavhost/viewpagerfragment/ViewPagerContainerFragment.kt
+16Lines changed: 16 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -38,6 +38,22 @@ class ViewPagerContainerFragment : BaseDataBindingFragment<FragmentViewpagerCont
38
38
39
39
}
40
40
41
+
overridefunonDestroyView() {
42
+
43
+
val viewPager2 = dataBinding?.viewPager
44
+
45
+
/*
46
+
Without setting ViewPager2 Adapter it causes memory leak
Copy file name to clipboardExpand all lines: Tutorial6-4NavigationUI-ViewPager2-FragmentToolbar-NestedNavigation/src/main/java/com/smarttoolfactory/tutorial6_4_navigationui_viewpager_fragmenttoolbar_nested_navigation/viewpagerfragment/ViewPagerContainerFragment.kt
Copy file name to clipboardExpand all lines: Tutorial6-5NavigationUI-ViewPager2-FragmentToolbar-MixedNavigation/src/main/java/com/smarttoolfactory/tutorial6_5navigationui_viewpager2_fragmenttoolbar_mixednavigation/viewpagerfragment/ViewPagerContainerFragment.kt
Copy file name to clipboardExpand all lines: Tutorial6-6NavigationUI-ViewPager2-Appbar-MixedNavigation-ViewModel/src/main/java/com/smarttoolfactory/tutorial6_6navigationui_viewpager2_appbar_mixednavigation_viewmodel/viewpagerfragment/ViewPagerContainerFragment.kt
Copy file name to clipboardExpand all lines: Tutorial6-7NavigationUI-MemoryLeakCheck/src/main/java/com/smarttoolfactory/tutorial6_7navigationui_memoryleakcheck/viewpagerfragment/ViewPagerContainerFragment.kt
+13Lines changed: 13 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -47,4 +47,17 @@ class ViewPagerContainerFragment : Fragment() {
47
47
}
48
48
}.attach()
49
49
}
50
+
51
+
overridefunonDestroyView() {
52
+
53
+
val viewPager2 = view?.findViewById<ViewPager2>(R.id.viewPager)
Copy file name to clipboardExpand all lines: Tutorial7-2BNV-ViewPager2-ComplexArchitecture/src/main/java/com/smarttoolfactory/tutorial7_2bnv_viewpager2_complexarchitecture/adapter/ChildFragmentStateAdapter.kt
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -32,6 +32,8 @@ class ChildFragmentStateAdapter(private val fragment: Fragment) :
Copy file name to clipboardExpand all lines: Tutorial7-2BNV-ViewPager2-ComplexArchitecture/src/main/java/com/smarttoolfactory/tutorial7_2bnv_viewpager2_complexarchitecture/fragment/blankfragment/BaseDataBindingFragment.kt
* ## 🔥️ Data binding that is not null(or non-nullable) after [Fragment.onDestroyView] is causing leak canary to show **MEMORY LEAK** for this fragment when used in ViewPager2
33
+
* * 🔥️ Data binding that is not null(or non-nullable) after [Fragment.onDestroyView]
34
+
* causing leak canary to show data binding related **MEMORY LEAK**
35
+
* for this fragment when used in [ViewPager2]
36
+
*
37
+
* * Even with null data binding [ViewPager2] still leaks with FragmentMaxLifecycleEnforcer
38
+
* or it's false positive, not confirmed
34
39
*/
35
40
var dataBinding:ViewBinding?=null
36
41
@@ -69,6 +74,11 @@ abstract class BaseDataBindingFragment<ViewBinding : ViewDataBinding> : Fragment
Copy file name to clipboardExpand all lines: Tutorial7-2BNV-ViewPager2-ComplexArchitecture/src/main/java/com/smarttoolfactory/tutorial7_2bnv_viewpager2_complexarchitecture/fragment/viewpagerfragment/ViewPagerContainerFragment.kt
Copy file name to clipboardExpand all lines: Tutorial7-3BNV-ViewPager2-FragmentToolbar-MixedNavigation/src/main/java/com/smarttoolfactory/tutorial7_3bnv_viewpager2_fragmenttoolbar_mixednavigation/fragment/blankfragment/DashboardFragment1.kt
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,9 @@ class DashboardFragment1 : BaseDataBindingFragment<FragmentDashboard1Binding>()
Copy file name to clipboardExpand all lines: Tutorial7-3BNV-ViewPager2-FragmentToolbar-MixedNavigation/src/main/java/com/smarttoolfactory/tutorial7_3bnv_viewpager2_fragmenttoolbar_mixednavigation/fragment/blankfragment/DashboardFragment2.kt
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,9 @@ class DashboardFragment2 : BaseDataBindingFragment<FragmentDashboard2Binding>()
Copy file name to clipboardExpand all lines: Tutorial7-3BNV-ViewPager2-FragmentToolbar-MixedNavigation/src/main/java/com/smarttoolfactory/tutorial7_3bnv_viewpager2_fragmenttoolbar_mixednavigation/fragment/blankfragment/DashboardFragment3.kt
+2-1Lines changed: 2 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -13,8 +13,9 @@ class DashboardFragment3 : BaseDataBindingFragment<FragmentDashboard3Binding>()
Copy file name to clipboardExpand all lines: Tutorial7-3BNV-ViewPager2-FragmentToolbar-MixedNavigation/src/main/java/com/smarttoolfactory/tutorial7_3bnv_viewpager2_fragmenttoolbar_mixednavigation/fragment/blankfragment/LoginFragment1.kt
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,9 @@ class LoginFragment1 : BaseDataBindingFragment<FragmentLogin1Binding>() {
Copy file name to clipboardExpand all lines: Tutorial7-3BNV-ViewPager2-FragmentToolbar-MixedNavigation/src/main/java/com/smarttoolfactory/tutorial7_3bnv_viewpager2_fragmenttoolbar_mixednavigation/fragment/blankfragment/NotificationFragment1.kt
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,9 @@ class NotificationFragment1 : BaseDataBindingFragment<FragmentNotification1Bindi
Copy file name to clipboardExpand all lines: Tutorial7-3BNV-ViewPager2-FragmentToolbar-MixedNavigation/src/main/java/com/smarttoolfactory/tutorial7_3bnv_viewpager2_fragmenttoolbar_mixednavigation/fragment/blankfragment/NotificationFragment2.kt
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,9 @@ class NotificationFragment2 : BaseDataBindingFragment<FragmentNotification2Bindi
Copy file name to clipboardExpand all lines: Tutorial7-3BNV-ViewPager2-FragmentToolbar-MixedNavigation/src/main/java/com/smarttoolfactory/tutorial7_3bnv_viewpager2_fragmenttoolbar_mixednavigation/fragment/blankfragment/NotificationFragment3.kt
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,9 @@ class NotificationFragment3 : BaseDataBindingFragment<FragmentNotification3Bindi
Copy file name to clipboardExpand all lines: Tutorial7-3BNV-ViewPager2-FragmentToolbar-MixedNavigation/src/main/java/com/smarttoolfactory/tutorial7_3bnv_viewpager2_fragmenttoolbar_mixednavigation/fragment/blankfragment/PostHorizontalFragment.kt
-5Lines changed: 0 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -22,11 +22,6 @@ class PostHorizontalFragment : BaseDataBindingFragment<FragmentPostListHorizonta
Copy file name to clipboardExpand all lines: Tutorial7-3BNV-ViewPager2-FragmentToolbar-MixedNavigation/src/main/java/com/smarttoolfactory/tutorial7_3bnv_viewpager2_fragmenttoolbar_mixednavigation/fragment/viewpagerfragment/ViewPagerContainerFragment.kt
0 commit comments