Одиночное проверяемое поведение в пунктах меню не работает - PullRequest
0 голосов
/ 22 июня 2019

У меня есть меню, связанное в BottomSheetDialog как:

bottom sheet dialog

Я хочу, чтобы элементы проверялись при их выборе. Он должен иметь одно проверяемое поведение как таковое:

Desired Bottom Sheet Dialog

Пожалуйста, найдите код ниже:

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)

проверка поведения в порядке. Почему это происходит ?

...