Android Tab在超过2个时滑动卡顿问题

原代码:

tabLayout = findViewById(R.id.tablayout);
viewPager = findViewById(R.id.viewPager);

//创建List集合
fragments = new ArrayList<>();

//添加到fragments集合里
fragments.add(new LayoutNewsActivity());
fragments.add(new LayoutServiceActivity());
//fragments.add(new LayoutMeActivity());
fragments.add(new LayoutMeActivity());

//创建适配器
Adapter adapter = new Adapter(getSupportFragmentManager());
//fragment添加到adapter
adapter.setFragments(fragments);
//adapter添加到viewPager
viewPager.setAdapter(adapter);

//tabLayout
tabLayout.addTab(tabLayout.newTab());
tabLayout.addTab(tabLayout.newTab());
tabLayout.addTab(tabLayout.newTab());
tabLayout.setupWithViewPager(viewPager);


//设置tab名称
Objects.requireNonNull(tabLayout.getTabAt(0)).setText("动态");
Objects.requireNonNull(tabLayout.getTabAt(1)).setText("服务");
Objects.requireNonNull(tabLayout.getTabAt(2)).setText("我的");

解决方法:

添加一个viewPager设置:

viewPager.setOffscreenPageLimit(2); 

此处值根据需要设置,一般设为2即可

问题原因:

默认viewPager缓存数量为1,所以在超过两个页面时滑动会卡顿,可以根据需要增加,但不建议过多,毕竟占着缓存

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值