From a5ef9fefccb13963fd6adc2c0d94ec0e99fc126d Mon Sep 17 00:00:00 2001 From: Runt <qingingrunt2010@qq.com> Date: Sun, 14 Aug 2022 07:32:12 +0000 Subject: [PATCH] PageResult修改 --- 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