У меня есть меню, связанное в BottomSheetDialog как:
Я хочу, чтобы элементы проверялись при их выборе. Он должен иметь одно проверяемое поведение как таковое:
Пожалуйста, найдите код ниже:
menu_bottomappbar_drawer.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@id/BottomAppBar_fromActivityHome_DrawerMenu_Home"
android:icon="@drawable/ic_home_dark"
android:title="@string/Menu_BottomAppBar_DrawerMain_Home"/>
<item
android:id="@id/BottomAppBar_fromActivityHome_DrawerMenu_Goals"
android:icon="@drawable/ic_goals_dark"
android:title="@string/Menu_BottomAppBar_DrawerMain_Goals"/>
<item
android:id="@id/BottomAppBar_fromActivityHome_DrawerMenu_ToDo"
android:icon="@drawable/ic_todo_dark"
android:title="@string/Menu_BottomAppBar_DrawerMain_ToDo"/>
<item
android:id="@id/BottomAppBar_fromActivityHome_DrawerMenu_ToBuy"
android:icon="@drawable/ic_tobuy_dark"
android:title="@string/Menu_BottomAppBar_DrawerMain_ToBuy"/>
<item
android:id="@id/BottomAppBar_fromActivityHome_DrawerMenu_Statistics"
android:icon="@drawable/ic_statistics_dark"
android:title="@string/Menu_BottomAppBar_DrawerMain_Statistics"/>
</group>
</menu>
Навигация, к которой привязано мое меню:
<com.google.android.material.navigation.NavigationView
android:id="@id/BottomAppBar_fromFragmentBottomAppBarDrawer_Drawer_NavigationView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginTop="@dimen/MarginTop_forNavigationView"
android:paddingBottom="@dimen/PaddingTop_forNavigationView"
app:menu="@menu/menu_bottomappbar_drawer"
app:itemBackground="@drawable/custom_bottomappbar_drawer_item_state"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/BottomAppBar_fromFragmentBottomAppBarDrawer_Drawer_UserIcon"
app:layout_constraintBottom_toBottomOf="parent"/>
custom_bottomappbar_drawer_item_state.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorAccent" android:state_checked="true" />
<item android:drawable="@color/white_000" />
</selector>
EDIT:
Я заметил, что если я использую Навигационный компонент, чтобы открыть диалоговое окно нижнего листа следующим образом:
this.findNavController(R.id.Container_fromHomeActivity_BottomAppBarFragments).navigate(R.id.BottomAppBar_fromActivityHome_Drawer)
проверка поведения исчезает.
Однако, если я открою диалоговое окно вручную следующим образом:
val mBottomNavDrawerFragment = RoundedBottomSheetDialogFragmentForBottomAppBarDrawer()
mBottomNavDrawerFragment.show(supportFragmentManager, mBottomNavDrawerFragment.tag)
проверка поведения в порядке. Почему это происходит ?