Программно открыть вкладку в BottomNavigationView
Есть TabLayout с вкладками. Программно открыть эти вкладки можно так:
SectionsPagerAdapter pagerAdapter =
new SectionsPagerAdapter(getSupportFragmentManager());
pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(pagerAdapter);
//Связывание ViewPager с TabLayout
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(pager);
и далее:
pager.setCurrentItem(1);
На одной из вкладок реализована BottomNavigationView с тремя пунктами, по нажатии на которые загружаются фрагменты вот так:
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.bottomReports:
MainActivity.currentScreen = "Reports";
Utilities.ruleSearch(false);
loadFragment(frmReports.newInstance());
return true;
...
}
return false;
}
};
Нужно программно перейти на вкладку bottomReports. Перейти на нее указанным выше способом невозможно, т.к. в pager вновь создаваемые вкладки не попадают. Этим способом удается перейти только на материнский фрагмент в котором расположен BottomNavigationView. Вопрос: как программно открыть вкладку bottomReports?
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Для программного выбора нужно сделать так:
bottomNavigationView.setSelectedItemId(R.id.bottomReports);
но делать это нужно после инициализации менюшки. Вот есть подобный вопрос