ActivityMainMenuBinding + BottomNavigationView + ViewPager2
时间: 2024-06-07 11:02:13 浏览: 143
ActivityMainMenuBinding + BottomNavigationView + ViewPager2可以实现底部导航栏与ViewPager2的联动。下面是一个示例代码:
```java
// 在Activity中使用DataBinding绑定布局
ActivityMainMenuBinding binding = ActivityMainMenuBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
// 设置ViewPager2适配器
ViewPager2 viewPager = binding.viewPager;
viewPager.setAdapter(new MyPagerAdapter(this));
// 设置BottomNavigationView与ViewPager2的联动
BottomNavigationView bottomNavigationView = binding.bottomNavigationView;
bottomNavigationView.setOnNavigationItemSelectedListener(item -> {
switch (item.getItemId()) {
case R.id.menu_home:
viewPager.setCurrentItem(0);
return true;
case R.id.menu_dashboard:
viewPager.setCurrentItem(1);
return true;
case R.id.menu_notifications:
viewPager.setCurrentItem(2);
return true;
}
return false;
});
// 监听ViewPager2的页面切换事件,实现与BottomNavigationView的联动
viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
switch (position) {
case 0:
bottomNavigationView.setSelectedItemId(R.id.menu_home);
break;
case 1:
bottomNavigationView.setSelectedItemId(R.id.menu_dashboard);
break;
case 2:
bottomNavigationView.setSelectedItemId(R.id.menu_notifications);
break;
}
}
});
```
这段代码使用了DataBinding绑定了名为`ActivityMainMenuBinding`的布局文件。在布局文件中,包含了一个`ViewPager2`和一个`BottomNavigationView`。通过设置`ViewPager2`的适配器和监听器,以及`BottomNavigationView`的选中监听器和`ViewPager2`的页面切换监听器,实现了底部导航栏与ViewPager2的联动。
阅读全文