BottomNavigationView с заставкой (компоненты навигации архитектуры) - PullRequest
0 голосов
/ 26 ноября 2018

Я реализовал навигацию с bottomNavigationView, как показано на графике .Навигация работает нормально, если main_graph выбран как «Start Destination».Тем не менее, если я выбираю фрагмент_сплэша как «пункт назначения начала», из которого я перехожу к main_graph с помощью popUpToInclusive, BottomNavigation не работает должным образом.(он полностью испорчен, фрагменты не разрушаются при навигации между нижними значками и т. д.)

У моего вложенного main_graph есть свой собственный «Начальный пункт назначения», который должен быть начальным пунктом назначения для BottomNavigationView.

Iследовать подходу Single Activity.

Как решить эту проблему?Спасибо.

1 Ответ

0 голосов
/ 02 мая 2019

просто внедрите onNavigationItemSelected для BottomNavigationView следующим образом

@Override
    public boolean onNavigationItemSelected(MenuItem item) {
        int id = item.getItemId();
        NavOptions navOptions = new NavOptions.Builder()
                .setPopUpTo(R.id.nav_home, false)
                .build();

        navController.navigate(id,null, navOptions);

    }

В моем случае я определил имена пунктов назначения так же, как идентификаторы пунктов меню в BottomNavigation

вот мой графикxml

<?xml version="1.0" encoding="utf-8"?>
<navigation
    android:id="@+id/main_navigation"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    app:startDestination="@id/splashFragment">
    <fragment
        android:id="@+id/splashFragment"
        android:name="com.businesslinktrading.makanilebanon.SplashFragment"
        android:label="fragment_splash"
        tools:layout="@layout/fragment_splash">
        <action
            android:id="@+id/action_splashFragment_to_nav_home"
            app:destination="@id/navigation4"
            app:launchSingleTop="true"
            app:popUpTo="@+id/main_navigation"
            app:popUpToInclusive="true"/>
    </fragment>
    <navigation android:id="@+id/navigation4"
                app:startDestination="@id/nav_home">
        <fragment
            android:id="@+id/nav_emergancy_phones"
            android:name="com.businesslinktrading.makanilebanon.EmergenciesFragment"
            android:label="fragment_emergencies"
            tools:layout="@layout/fragment_emergencies"/>
        <fragment
            android:id="@+id/nav_moods"
            android:name="com.businesslinktrading.makanilebanon.MoodsFragment"
            android:label="fragment_moods"
            tools:layout="@layout/fragment_moods"/>
        <fragment
            android:id="@+id/nav_home"
            android:name="com.businesslinktrading.makanilebanon.ForYouFragment"
            android:label="fragment_for_you"
            tools:layout="@layout/fragment_for_you"/>
        <fragment
            android:id="@+id/nav_groups"
            android:name="com.businesslinktrading.makanilebanon.GroupsFragment"
            android:label="fragment_groups"
            tools:layout="@layout/fragment_groups"/>
        <fragment
            android:id="@+id/nav_parking"
            android:name="com.businesslinktrading.makanilebanon.ParkingFragment"
            android:label="fragment_parking"
            tools:layout="@layout/fragment_parking"/>
    </navigation>

</navigation> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...