Если вы используете фрагменты для создания экземпляра в нижней панели навигации, вам просто нужно создать экземпляр фрагмента в методе onCreate и использовать прослушиватель нижней панели навигации, чтобы использовать его для обработки прослушивателей щелчков.
В этой демонстрации у меня есть панель навигации, которая инициализируется с помощью слушателей, а после этого в onCreate я создаю экземпляр фрагмента для отображения при создании фрагмента.
public class MainActivity extends AppCompatActivity {
ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation_bar);
bottomNav.setOnNavigationItemSelectedListener(navListener);
viewPager = findViewById(R.id.view_pager);
PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(pagerAdapter);
private BottomNavigationView.OnNavigationItemSelectedListener navListener = new BottomNavigationView.OnNavigationItemSelectedListener() {@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.home_nav:
selectedFragment = new HomeFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();
break;
case R.id.explore_nav:
selectedFragment = new ExploreFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();
break;
}
return true;
}
};
selectedFragment = new HomeFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit();