Runt
2022-08-13 b3a51f064c4dfb27f54cd9526803338d2e8dc296
app/src/main/java/com/runt/open/mvvm/base/activities/BaseTabActivity.java
@@ -17,8 +17,12 @@
import java.util.List;
/**
 * 带有tablayout activity封装(带有viewpager的视图父类)
 * 继承此类,有效优化代码13行
 * 项目中有过多含有viewpager的activity可调用,其他情况下不建议使用,优化代码量不佳
 * Created by Administrator on 2021/11/4 0004.
 */
@Deprecated
public abstract class BaseTabActivity<B extends ViewBinding,VM extends BaseViewModel>  extends BaseActivity<B,VM> {
    TabLayout tabLayout;
@@ -35,8 +39,8 @@
        //设置当前可见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) {
@@ -50,9 +54,16 @@
        new TabLayoutMediator(tabLayout, viewPager2, (tab, position) -> tab.setText(tabTitles.get(position))).attach();
    }
    /**
     * tablayout 标题列表
     * @return
     */
    protected abstract List<String> initTabTitles();
    /**
     * 初始化fragment列表
     * @return
     */
    protected abstract List<BaseFragment> initFragments();
    protected List<String> getTabTitles(){