Navigation Drawer не открывает нужный фрагмент

В приложении используется Navigation Drawer Activity. Для перехода по пунктам меню Navigation Drawer используется Navigation Architecture Component. Сами пункты меню являются фрагментами. При нажатии на пункт меню не окрывается нужный фрагмент. Код всего Navigation Drawer взят из шаблона в Android Studio. При запуске этого шаблона все работает, в моем приложении ничего не происходит.

XML с навигацией:

<?xml version="1.0" encoding="utf-8"?>
<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"
    android:id="@+id/mobile_navigation"
    app:startDestination="@+id/nav_view_pager_fragment">

    <fragment
        android:id="@+id/nav_view_pager_fragment"
        android:name="com.epam.oleksandr_filonenko.homework_seven.ui.viewpager.ViewPagerFragment"
        android:label="@string/view_pager"
        tools:layout="@layout/fragment_view_pager" />

    <fragment
        android:id="@+id/nav_web_view_fragment"
  android:name="com.epam.oleksandr_filonenko.homework_seven.ui.webview.WebViewFragment"
        android:label="@string/web_view"
        tools:layout="@layout/fragment_web_view" />

    <fragment
        android:id="@+id/nav_recycler_view_fragment"    
android:name="com.epam.oleksandr_filonenko.homework_seven.ui.recyclerview.RecyclerViewFragment"
        android:label="@string/recycler_view"
        tools:layout="@layout/fragment_recycler_view" />
</navigation>

Код MainActivity:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
        val navView: NavigationView = findViewById(R.id.nav_view)
        val navController = findNavController(R.id.nav_host_fragment)
        appBarConfiguration = AppBarConfiguration(
            setOf(
                R.id.nav_view_pager_fragment, R.id.nav_web_view_fragment,
                R.id.nav_recycler_view_fragment
            ), drawerLayout
        )
        setupActionBarWithNavController(navController, appBarConfiguration)
        navView.setupWithNavController(navController)
    }

    override fun onSupportNavigateUp(): Boolean {
        val navController = findNavController(R.id.nav_host_fragment)
        return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp()
    }

P.S. Из кода активити были убраны toolbar и вложенное в него меню, а также fab, которые были в шаблоне. Так же сам drawer не корректно отображается. Navigation Drawer


Ответы (2 шт):

Автор решения: Роман Байманов

дело в том что при удалении Toolbara сбивается index item menu для вашего фрагмента. Для решение данного вопроса необходимо самому ручками прописать Android Navigation Driver вот ссылка.

→ Ссылка
Автор решения: Alex Filonenko

Решение: Для того, чтобы открыть нужный фрагмент, id пункта меню и id элемента навигации должны быть одинаковыми. Система сама привяжет нужный фрагмент к пункту меню Navigation Drawer'a

→ Ссылка