尝试在 android studio (Kotlin) 中用另一个片段替换一个片段

Trying to replace one Fragment with another in android studio (Kotlin)

我正在尝试创建一个 OnClickListener 来更改 NavController 内部的片段,但按下按钮时我一直没有任何反应。到目前为止,这是我的代码:

主要活动:

 override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)



        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        val navView: BottomNavigationView = binding.navView

        val navController = findNavController(R.id.nav_host_fragment_activity_main)
        
        val appBarConfiguration = AppBarConfiguration(
            setOf(
                R.id.navigation_check_in, R.id.navigation_dashboard, R.id.navigation_new_emp
            )
        )
        setupActionBarWithNavController(navController, appBarConfiguration)
        navView.setupWithNavController(navController)
 }

检查片段:

 override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)


        binding.newEmpBtn.setOnClickListener(View.OnClickListener {
            requireActivity().supportFragmentManager.commit {
                replace(R.id.nav_host_fragment_activity_main, NewEmpFragment().newInstance())
                setReorderingAllowed(true)
                addToBackStack(null)
            }
        })

    }

目前,这段代码没有给出错误,它似乎无法正常工作,过去几个小时我一直在论坛中搜索。任何想法都会很棒!

我想你不见了beginTransaction()。你可以试试这个。

    binding.newEmpBtn.setOnClickListener(View.OnClickListener {
       val fragmentManager = parentFragmentManager
       val fragmentTransaction: FragmentTransaction = fragmentManager.beginTransaction()
       fragmentTransaction.replace(
           R.id.nav_host_fragment_activity_main,
           NewEmpFragment()
       )
       fragmentTransaction.addToBackStack(null)
       fragmentTransaction.commit()
    })