Sincronizar un ViewPager con BottomNavigationView
Establecer los controles
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
mViewPager = (ViewPager) findViewById(R.id.view_pager);Asignar el listener del BottomNavigationView
navigation.setOnNavigationItemSelectedListener(this);Cargar el adaptador y asignarlo al ViewPager
DemoFragmentAdapter adapterViewPager = new DemoFragmentAdapter(getSupportFragmentManager());
mViewPager.setAdapter(adapterViewPager);Sincronizar el ViewPager con el BottomNavigationView se hace con el OnPageChangeListener
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
public void onPageScrollStateChanged(int state) {}
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
public void onPageSelected(int position) {
navigation.getMenu().getItem(position).setChecked(true);
}
});Para seleccionar un item de la BottomNavigationView mediante su posición navigation.getMenu().getItem(position).setChecked(true);
Hi, the code looks great. Do you know why it's necessary to use
mViewPager.setCurrentItem(ID)rather thangetSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,SELECTED_Fragment).commit();in this case?