ViewPager2+TabLayout实现三个简单页面
之前实现底部导航栏用的是BottomNavigation,使用BottomNavigation有以下几个特点:1.页面之间不能通过滑动来实现跳转;2.每次跳转都需要重新创建Fragment;3.如果当前页面不在navigation的start页面,每次按下返回键都会都先先返回到start页面。
使用ViewPager2+TabLayout可以完美地解决上面三个问题。其实我不明白BottomNavigation的优势在哪里。
public class MainActivity extends AppCompatActivity {
TabLayoutMediator tabLayoutMediator;//配置策略
ViewPager2 viewPager2;
TabLayout tabLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager2=findViewById(R.id.viewPager2);
tabLayout=findViewById(R.id.tabLayout2);
viewPager2.setAdapter(new FragmentStateAdapter(this) {
@NonNull
@Override
public Fragment createFragment(int position) {//每一个页面对应要创建的对应的页面
switch (position){
case 0:
return new ScaleFragment();
case 1:
return new RotateFragment();
default:
return new TranslateFragment();
}
}
@Override
public int getItemCount() {//需要实现几个页面
return 3;
}
});
tabLayoutMediator=new TabLayoutMediator(tabLayout, viewPager2, new TabLayoutMediator.TabConfigurationStrategy() {
@Override
public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
switch (position){
case 0:
tab.setText("缩放");
break;
case 1:
tab.setText("旋转");
break;
default:
tab.setText("位移");
}
}
});
tabLayoutMediator.attach();
}
}