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?