如果我传递片段对象 throw 函数是干净的代码

If I pass fragment object throw function is clean code

例如:

object ThisClassForNavigateToSomeFragment{
    internal fun navigateToFragment1(
        productId: Long, navigateId:Int, fragment:Fragment) {

        val bundle = Bundle()
        bundle.putLong("product_id", productId)
        fragment.findNavController().navigate(navigateId, bundle)
    }}

    internal fun navigateToFragment(
        productId: Long, navigateId:Int, fragment:Fragment) {

        val bundle = Bundle()
        bundle.putLong("product_id", productId)
        fragment.findNavController().navigate(navigateId, bundle)
    }}

这是干净的代码吗,如果我通过 fragment 抛出一个函数,这样好吗?

为什么要有不同的导航功能?您可以简单地在 BaseFragment 或 BaseActivity 中添加一个方法,如下所示。 (并在您的片段或 activity 中扩展它)

protected fun navigate(directions: NavDirections) {
  findNavController().navigate(directions)
}

这很简单,您真的不需要对象来完成这个简单的任务。

由于您传递了 NavDirection 对象,因此您可以传递一个带或不带附加物的对象。