JetPack

Navigation的一些问题

2021-01-07  本文已影响0人  MIRROR1217

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)
上一篇 下一篇

猜你喜欢

热点阅读