У меня есть BottomNavigationView
.
. Он работает и показывает заголовок текста под элементом, по которому щелкнул пользователь.
Однако добавление OnNavigationItemSelectedListener
останавливает показ элемента, который был нажатэто название под значком.Он по-прежнему получает волновой эффект и запускает любой код, прикрепленный к слушателю этого элемента.Добавление Log.d () и печать сообщения в консоли при щелчке элемента показывает, что слушатель работает.Но по какой-то причине текстовое название для этого элемента не будет отображаться под.Таким образом, вы не знаете, какую кнопку вы в последний раз нажимали.
Я пытался переместить ее из onStart () в onCreate (), но возникла та же проблема.
Комментирование этой проблемы решает проблему, но я хочу инициировать события при щелчках элемента.
Слушатель
bnvMain.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.navigation_home:
// open fragment 1
break;
case R.id.navigation_dashboard:
// open fragment 2
break;
case R.id.navigation_notifications:
// open fragment 3
break;
case R.id.navigation_profile:
// open fragment 4
Log.d("myTag", "This seems to be running...");
break;
}
return false;
}
});
XML
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bnvMain"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:animateLayoutChanges="true"
android:background="@color/colorPrimary"
app:itemIconTint="@color/colorAccent"
app:itemTextColor="@color/colorNavText"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/navigation" />