记录ViewPage+Fragment嵌套ViewPage+Fragment滑动时内部嵌套卡顿的问题和实现Fragment的懒加载

本文记录了在ViewPage中嵌套Fragment,再进一步嵌套ViewPage导致的滑动卡顿问题。提出了两种解决方案:一是通过创建抽象Base类,简化布局以减少冲突;二是修改Fragment的代码来优化滑动效果。同时,文章还介绍了如何在Fragment中实现懒加载,以提高应用性能。
摘要由CSDN通过智能技术生成

先说ViewPage+Fragment嵌套ViewPage+Fragment滑动时内部嵌套卡顿和白屏的问题:具体导致原因没有深入去追究,只记录两种实现方案:
- **第一种就是将内部的Fragment替换掉,写一个抽象的Base类,Base类中的布局就一个容器,见代码:

Base类

public abstract class BasePage {
   

    public Activity mActivity;

    public View mRootView;//布局对象

    public TextView tvTitle;//标题对象

    public FrameLayout flContent;//内容

    public BasePage(Activity mActivity) {
        this.mActivity = mActivity;
        init();
        initData();
    }


    private void init() {
        mRootView = View.inflate(mActivity, R.layout.base_pager, null);
        flContent = (FrameLayout) mRootView.findViewById(R.id.fl_content);
        flContent.addView(initView());
    }

    /**
     * 初始化布局
     */
    public abstract View initView();

    /**
     * 初始化数据
     */
    public abstract void initData();
}

让子类实现该抽象类,并将布局返回即可,见代码:

public class ExtendsMyFragment extends BasePage {
   
    private MyViewPage viewPager;
    private TabLayout tabLayout;
    private List<BasePage> list;
    private BasePage fragment1, fragment2, fragment3, fragment4;
    private FragmentManager manager;
    private List<String> titles;

    public ExtendsMyFragment(Activity activity) {
        super(activity);
    }

    private void addFragment() {
        list = new ArrayList<>();
        fragment1 = new MytoFragment(mActivity);
        fragment2 = new MytoFragment(mActivity);
        fragment3 = new MytoFragment(mActivity);
        fragment4 = new MytoFragment(mActivity);
        list.add(fragment1);
        list.add(fragment2);
        list.add(fragment3);
        list.add(fragment4);
    }

    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值