Я вижу ваш код на GitHub и предполагаю, что вы используете навигацию Android неправильно.Во-первых, вам не нужно создавать разные графики (в вашем случае четыре) для разных фрагментов.Просто создайте один график и добавьте в него все фрагменты, которые вы должны использовать в нижней панели навигации и для других транзакций.И, во-вторых, вам не нужно выполнять транзакции фрагментов вручную (в коде активности), но это не обязательно.Ваш обновленный код: только один график:
<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/home_graph"
app:startDestination="@id/home2Fragment">
<fragment
android:id="@+id/home2Fragment"
android:name="com.felipeshiba.pocnavigation.Home2Fragment"
android:label="fragment_home2"
tools:layout="@layout/fragment_home2" >
<action
android:id="@+id/action_home2Fragment_to_home3Fragment"
app:destination="@id/home3Fragment"
app:enterAnim="@anim/nav_default_enter_anim"
app:exitAnim="@anim/nav_default_exit_anim"
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
app:popExitAnim="@anim/nav_default_pop_exit_anim"/>
</fragment>
<fragment
android:id="@+id/home3Fragment"
android:name="com.felipeshiba.pocnavigation.Home3Fragment"
android:label="fragment_home3"
tools:layout="@layout/fragment_home3" >
<deepLink
android:id="@+id/deepLink"
app:uri="ifood://home/" />
</fragment>
<fragment
android:id="@+id/orders2Fragment"
android:name="com.felipeshiba.pocnavigation.Orders2Fragment"
android:label="fragment_orders2"
tools:layout="@layout/fragment_orders2" />
<fragment
android:id="@+id/profile2Fragment"
android:name="com.felipeshiba.pocnavigation.Profile2Fragment"
android:label="fragment_profile2"
tools:layout="@layout/fragment_profile2" />
<fragment
android:id="@+id/search2Fragment"
android:name="com.felipeshiba.pocnavigation.Search2Fragment"
android:label="fragment_search2"
tools:layout="@layout/fragment_search2" /></navigation>
Ваш обновленный код активности:
class NavigationActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_navigation)
val host: NavHostFragment = supportFragmentManager
.findFragmentById(R.id.navigation_container) as NavHostFragment? ?: return
val navController = host.navController
bottom_navigation.setupWithNavController(navController)
}}
Теперь вы можете просто вызывать элементы навигации (фрагменты) в своем меню, заменяя пункт меню.id с фрагментами id как показано ниже: обновленное menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/home2Fragment"
android:icon="?android:attr/actionModeCopyDrawable"
android:title="Home" />
<item
android:id="@+id/search2Fragment"
android:icon="@android:drawable/ic_menu_search"
android:title="Search" />
<item
android:id="@+id/orders2Fragment"
android:icon="?android:attr/actionModePasteDrawable"
android:title="Orders" />
<item
android:id="@+id/profile2Fragment"
android:icon="?android:attr/actionModeCutDrawable"
android:title="Profile" /></menu>
Ваша активность.xml:
<android.support.constraint.ConstraintLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".NavigationActivity">
<fragment
android:id="@+id/navigation_container"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:visibility="gone"
app:defaultNavHost="true"
app:navGraph="@navigation/home_graph"
app:layout_constraintBottom_toTopOf="@id/bottom_navigation"
app:layout_constraintTop_toTopOf="parent" />
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:menu="@menu/bottom_navigation"></android.support.constraint.ConstraintLayout>
Для другого обновленного (рабочего) кода, например, проверка манифеста здесь