Как перемещаться между различными фрагментами в нижней части навигации в Android в Kotlin - PullRequest
0 голосов
/ 26 октября 2019

Я пытался создать приложение с нижней панелью навигации в 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>

' ''

...