Android BottomNavigationView与Tabbed ViewPager可以结合使用来实现底部导航栏和顶部标签页的功能。下面是一个包含代码示例的解决方法。
首先,在XML布局文件中添加BottomNavigationView和ViewPager组件:
接下来,在Java代码中设置ViewPager和BottomNavigationView:
// 初始化ViewPager
ViewPager viewPager = findViewById(R.id.viewpager);
viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager()));
// 初始化BottomNavigationView
BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item1:
viewPager.setCurrentItem(0);
return true;
case R.id.menu_item2:
viewPager.setCurrentItem(1);
return true;
case R.id.menu_item3:
viewPager.setCurrentItem(2);
return true;
}
return false;
}
});
// 监听ViewPager的变化,同步更新BottomNavigationView
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
bottomNavigationView.getMenu().getItem(position).setChecked(true);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
最后,在res/menu目录下创建bottom_nav_menu.xml文件,定义底部导航栏的菜单项:
这样,就可以实现一个带有底部导航栏和顶部标签页的界面。当点击底部导航栏的菜单项时,会切换到对应的ViewPager页面。同时,当滑动ViewPager页面时,底部导航栏的选中状态也会相应地更新。