Explorar o código

调整学生端首页缓存模式

Pq %!s(int64=2) %!d(string=hai) anos
pai
achega
c6fecefa3a

+ 7 - 9
student/src/main/java/com/cooleshow/student/adapter/HomeBottomPageAdapter.java

@@ -45,16 +45,14 @@ public class HomeBottomPageAdapter extends FragmentStatePagerAdapter {
         return PagerAdapter.POSITION_NONE;
     }
 
+    @NonNull
     @Override
-    public Object instantiateItem(ViewGroup container, int position) {
-
-        Fragment fragment = null;
-        try {
-            fragment = (Fragment) super.instantiateItem(container, position);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+    public Object instantiateItem(@NonNull ViewGroup container, int position) {
+        return super.instantiateItem(container, position);
+    }
 
-        return fragment;
+    @Override
+    public void destroyItem(ViewGroup container, int position, Object object) {
+        super.destroyItem(container, position, object);
     }
 }

+ 11 - 0
student/src/main/java/com/cooleshow/student/adapter/HomePageAdapter.java

@@ -32,4 +32,15 @@ public class HomePageAdapter extends FragmentStateAdapter {
     public int getItemCount() {
         return mFragments != null ? mFragments.size() : 0;
     }
+
+    @Override
+    public long getItemId(int position) {
+        Fragment fragment = mFragments.get(position);
+        return fragment != null ? fragment.hashCode() : super.getItemId(position);
+    }
+
+    @Override
+    public boolean containsItem(long itemId) {
+        return super.containsItem(itemId);
+    }
 }

+ 1 - 0
student/src/main/java/com/cooleshow/student/ui/main/MainActivity.java

@@ -173,6 +173,7 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
         getViewBinding().viewPager.setAdapter(homePageAdapter);
         getViewBinding().viewPager.setOffscreenPageLimit(mFragments.size());
         getViewBinding().viewPager.setUserInputEnabled(false);
+        getViewBinding().viewPager.setSaveEnabled(false);
         getViewBinding().navigation.setItemIconTintList(null);
         getViewBinding().navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
             @Override