From 024fabb9b4098b3842019d496b0fb15fec0191a0 Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Sun, 14 Aug 2022 07:11:23 +0000
Subject: [PATCH] README.md 完善

---
 app/src/main/java/com/runt/open/mvvm/base/fragments/BaseTabFragment.java |   25 +++++++++++++++----------
 1 files changed, 15 insertions(+), 10 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..7ab8f97 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,22 +1,25 @@
 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;
 import java.util.List;
 
 /**
- * 带有tablayout fragment封装
+ * 带有tablayout fragment封装(带有viewpager的视图父类)
+ * 继承此类,有效优化代码13行
+ * 项目中有过多含有viewpager的fragment可调用,其他情况下不建议使用,优化代码量不佳
  * Created by Administrator on 2021/11/3 0003.
  */
-public abstract class BaseTabFragment<B extends ViewBinding,VM extends ViewModel> extends BaseFragment<B,VM> {
+@Deprecated
+public abstract class BaseTabFragment<B extends ViewBinding,VM extends BaseViewModel> extends BaseFragment<B,VM> {
 
     TabLayout tabLayout;
     FragmentAdapter fragmentAdapter;
@@ -25,28 +28,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