Android fragments FragmentContainerView:导航图中的片段不会膨胀

Android fragments FragmentContainerView:导航图中的片段不会膨胀,android-fragments,kotlin,navigation-drawer,android-inflate,android-navigation-graph,Android Fragments,Kotlin,Navigation Drawer,Android Inflate,Android Navigation Graph,所以,我遵循Google的Kotlin基础课程和主题3.2(添加导航抽屉),创建了一个XML文件,在其中我添加了一个片段作为NavHostFragment,它给了我一个警告,用FragmentContainerView替换它,我忽略了它,但我的应用程序不断崩溃,给了我无法膨胀片段的错误。因此,我将片段替换为FragmentContainerView。现在,我的应用程序启动了,但它不会膨胀在导航中设置为启动片段的片段。如果你们能帮我,那就太好了。蒂亚 Activity_main.xml: <

所以,我遵循Google的Kotlin基础课程和主题3.2(添加导航抽屉),创建了一个XML文件,在其中我添加了一个片段作为NavHostFragment,它给了我一个警告,用FragmentContainerView替换它,我忽略了它,但我的应用程序不断崩溃,给了我无法膨胀片段的错误。因此,我将片段替换为FragmentContainerView。现在,我的应用程序启动了,但它不会膨胀在导航中设置为启动片段的片段。如果你们能帮我,那就太好了。蒂亚

Activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<layout 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">

    <androidx.drawerlayout.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <androidx.fragment.app.FragmentContainerView
            android:id="@+id/myNavHostFragment"
            android:name="androidx.navigation.fragment.NavHostFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:defaultNavHost="true"
            app:navGraph="@navigation/navigation"
            tools:layout="@layout/login_fragment" />

        <com.google.android.material.navigation.NavigationView
            android:id="@+id/navView"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:headerLayout="@layout/nav_header"
            app:menu="@menu/navdrawer_menu" />

    </androidx.drawerlayout.widget.DrawerLayout>

</layout>

class MainActivity : AppCompatActivity() {
    private lateinit var drawerLayout: DrawerLayout
    private lateinit var binding: ActivityMainBinding

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

        binding = DataBindingUtil.setContentView<ActivityMainBinding>(this, R.layout.activity_main)
        drawerLayout = binding.drawerLayout

        val navHostFragment = supportFragmentManager.findFragmentById(R.id.myNavHostFragment) as NavHostFragment
        val navController = navHostFragment.navController
        //val navController = this.findNavController(R.id.myNavHostFragment)

        NavigationUI.setupActionBarWithNavController(this, navController, drawerLayout)
        NavigationUI.setupWithNavController(binding.navView, navController)
        navController.setGraph(R.navigation.navigation)
    }

    override fun onSupportNavigateUp(): Boolean {
        val navHostFragment = supportFragmentManager.findFragmentById(R.id.myNavHostFragment) as NavHostFragment
        val navController = navHostFragment.navController
        //val navController = this.findNavController(R.id.myNavHostFragment)
        return NavigationUI.navigateUp(navController, drawerLayout)
    }
}
<?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" android:id="@+id/navigation"
    app:startDestination="@id/loginFragment">

    <fragment
        android:id="@+id/loginFragment"
        android:name="com.example.kotlinfundamentals.login.LoginFragment"
        android:label="LoginFragment" >
        <action
            android:id="@+id/action_loginFragment_to_registerFragment"
            app:destination="@id/registerFragment" />
        <action
            android:id="@+id/action_loginFragment_to_homeFragment"
            app:destination="@id/homeFragment"
            app:popUpTo="@id/loginFragment"
            app:popUpToInclusive="true" />
    </fragment> </navigation>