【问题标题】:Trying to replace one Fragment with another in android studio (Kotlin)试图在 android studio (Kotlin) 中用另一个 Fragment 替换一个 Fragment
【发布时间】:2021-07-18 10:14:28
【问题描述】:

我正在尝试创建一个 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)
 }

CheckInFragment:

 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)
            }
        })

    }

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

【问题讨论】:

    标签: android kotlin android-fragments


    【解决方案1】:

    我认为您缺少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()
        })
    

    【讨论】:

      猜你喜欢
      • 2013-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      相关资源
      最近更新 更多