Я пытался создать приложение с нижней панелью навигации в kotlin, но я не могу перемещаться между фрагментами. Я создал функцию, чтобы изменить именованный как заменить фрагмент, чтобы изменить фрагмент (функция работает нормально). когда я использую его в операторе When (при нажатии Listener), он не выполняется
, вот мой код
'' '
BottomNavigationView.OnNavigationItemSelectedListener { item->
when(item.itemId){
R.id.nav_home -> {
replaceFragment(home_Fragment())
return@OnNavigationItemSelectedListener true
}
R.id.nav_trivia -> {
replaceFragment(trivia_Fragment())
return@OnNavigationItemSelectedListener true
}
R.id.nav_message -> {
replaceFragment(message_Fragment())
return@OnNavigationItemSelectedListener true
}
R.id.nav_profile -> {
replaceFragment(profile_Fragment())
return@OnNavigationItemSelectedListener true
}
}
false
}
}
private fun replaceFragment(fragment: Fragment){
val fragmentTransaction = supportFragmentManager.beginTransaction()
fragmentTransaction.replace(R.id.main_fragment, fragment)
fragmentTransaction.commit()
}
}
' ''
вот XML-файл
'' '
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:design="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_activity_fragment_container"
tools:context=".MainActivity">
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="start"
design:menu="@menu/bottom_navigation"></com.google.android.material.bottomnavigation.BottomNavigationView>
<FrameLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="androidx.navigation.fragment.NavHostFragment"
android:id="@+id/main_fragment"/>
</RelativeLayout>
' ''