美文网首页JetPack
Navigation的一些问题

Navigation的一些问题

作者: MIRROR1217 | 来源:发表于2021-01-07 22:46 被阅读0次

    1.startDestination传参和重定向问题

            val navController = findNavController(R.id.nav_host_fragment)
            val navInflater = navController.navInflater
            val graph = navInflater.inflate(R.navigation.mobile_navigation)
            graph.startDestination = R.id.navigation_dashboard
            navController.setGraph(graph,Bundle().apply {
                putString("test","test")
            })
    

    2.fragment返回传参问题

    我们知道Activity可以通过setResult返回参数,所以Fragment也可以这样,不过需要更新版本

    implementation "androidx.fragment:fragment-ktx:1.3.0-beta01"
    

    然后使用setFragmentResult返回参数

       override fun onStop() {
            super.onStop()
           parentFragment?.setFragmentResult("requestKey",Bundle().apply {
                putString("id","notifacation")
            })
        }
    

    在Fragment接收参数

        override fun onResume() {
            super.onResume()
            parentFragmentManager.setFragmentResultListener("key", this,
                FragmentResultListener { requestKey, result -> Log.d("requestKey",requestKey)})
        }
    

    3.fragment返回键监听

          val obj = object : OnBackPressedCallback(true) {
                override fun handleOnBackPressed() {
                    Log.d("back","back")
                }
            }
            requireActivity().onBackPressedDispatcher.addCallback(this,obj)
    

    相关文章

      网友评论

        本文标题:Navigation的一些问题

        本文链接:https://www.haomeiwen.com/subject/jamtaktx.html