原代码:
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,所以在超过两个页面时滑动会卡顿,可以根据需要增加,但不建议过多,毕竟占着缓存