#android #android-fragments #bottomnavigationview
Вопрос:
У меня есть нижняя панель навигации с 4 фрагментами и 1 действием внутри другого действия(в котором будет отображаться весь фрагмент). Я хочу, чтобы мой первый фрагмент отображался в начале действия(в котором будет отображаться весь фрагмент) вместе с соответствующим элементом нижней панели навигации. Мой фрагмент 1 отображается при запуске, но с неправильным элементом нижней панели навигации.
Вот что, я начинаю. Выбранный элемент должен быть домашним(посередине)
У меня есть это в разделе onCreate
btmNav = findViewById(R.id.btmnav); btmNav.setOnNavigationItemSelectedListener((navListner)); getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new RecViewFragment()).commit();
и это за пределами Oncreate
private BottomNavigationView.OnNavigationItemSelectedListener navListner = new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()){ case R.id.navprofile: getSupportFragmentManager().beginTransaction(). replace(R.id.fragment_container,new Fragment2()).commit(); break; case R.id.navmap: Intent intent = new Intent(MainActivityBuses.this, MapActivity.class); startActivity(intent); break; case R.id.navhome: getSupportFragmentManager().beginTransaction(). replace(R.id.fragment_container,new Fragment2()).commit(); break; case R.id.navmybus: getSupportFragmentManager().beginTransaction(). replace(R.id.fragment_container,new Fragment3()).commit(); break; case R.id.navinfo: getSupportFragmentManager().beginTransaction(). replace(R.id.fragment_container,new Fragment4()).commit(); break; } return true; }
Ответ №1:
я получил ответ, просто нужно добавить это
btmNav.getMenu().findItem(R.id.navhome).setChecked(true);
ниже этого
btmNav = findViewById(R.id.btmnav); btmNav.setOnNavigationItemSelectedListener((navListner)); getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new RecViewFragment()).commit();