美文网首页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