From 485c4e60955d1a9e82c9887da7d8b71ad68ad257 Mon Sep 17 00:00:00 2001
From: nilupeng <qingingrunt2010@qq.com>
Date: Thu, 11 Aug 2022 09:58:47 +0000
Subject: [PATCH] 合并优化

---
 app/src/main/java/com/runt/open/mvvm/base/fragments/BaseTabFragment.java |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/app/src/main/java/com/runt/open/mvvm/base/fragments/BaseTabFragment.java b/app/src/main/java/com/runt/open/mvvm/base/fragments/BaseTabFragment.java
index f482d6b..bf6878f 100644
--- a/app/src/main/java/com/runt/open/mvvm/base/fragments/BaseTabFragment.java
+++ b/app/src/main/java/com/runt/open/mvvm/base/fragments/BaseTabFragment.java
@@ -1,12 +1,12 @@
 package com.runt.open.mvvm.base.fragments;
 
-import androidx.lifecycle.ViewModel;
 import androidx.viewbinding.ViewBinding;
 import androidx.viewpager2.widget.ViewPager2;
 
 import com.google.android.material.tabs.TabLayout;
 import com.google.android.material.tabs.TabLayoutMediator;
 import com.runt.open.mvvm.base.adapter.FragmentAdapter;
+import com.runt.open.mvvm.base.model.BaseViewModel;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -16,7 +16,7 @@
  * 带有tablayout fragment封装
  * Created by Administrator on 2021/11/3 0003.
  */
-public abstract class BaseTabFragment<B extends ViewBinding,VM extends ViewModel> extends BaseFragment<B,VM> {
+public abstract class BaseTabFragment<B extends ViewBinding,VM extends BaseViewModel> extends BaseFragment<B,VM> {
 
     TabLayout tabLayout;
     FragmentAdapter fragmentAdapter;
@@ -25,28 +25,30 @@
 
     @Override
     public void initViews() {
-
-        fragmentAdapter = new FragmentAdapter(activity);
-        fragmentAdapter.setFragments(initFragments());
         setTabTitles(initTabTitles());
         //设置当前可见Item左右可见page数,次范围内不会被销毁
         //禁用预加载
         try {
-            viewPager2 = (ViewPager2) binding.getClass().getDeclaredField("viewPager2").get(binding);
-            tabLayout = (TabLayout) binding.getClass().getDeclaredField("tabLayout").get(binding);
+            viewPager2 = (ViewPager2) mBinding.getClass().getDeclaredField("viewPager2").get(mBinding);
+            tabLayout = (TabLayout) mBinding.getClass().getDeclaredField("tabLayout").get(mBinding);
         } catch (IllegalAccessException e) {
             e.printStackTrace();
         } catch (NoSuchFieldException e) {
             e.printStackTrace();
         }
-        ;
         viewPager2.setOffscreenPageLimit(ViewPager2.OFFSCREEN_PAGE_LIMIT_DEFAULT);
-        viewPager2.setAdapter(fragmentAdapter);
         viewPager2.setCurrentItem(0);
         viewPager2.setUserInputEnabled(false); //true:滑动,false:禁止滑动
         new TabLayoutMediator(tabLayout, viewPager2, (tab, position) -> tab.setText(tabTitles.get(position))).attach();
     }
 
+    @Override
+    public void loadData() {
+        fragmentAdapter = new FragmentAdapter(mActivity);
+        fragmentAdapter.setFragments(initFragments());
+        viewPager2.setAdapter(fragmentAdapter);
+    }
+
     protected abstract List<String> initTabTitles();
 
     protected abstract List<BaseFragment> initFragments();

--
Gitblit v1.9.1