对于 public fun Fragment.findNavController() 的许多论点

To many arguments for public fun Fragment.findNavController()

import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import androidx.drawerlayout.widget.DrawerLayout
import com.example.tender.R
import com.example.tender.databinding.FragmentAvailableTenderBinding
import com.example.tender.databinding.FragmentLoginBinding
import androidx.navigation.fragment.findNavController
import androidx.navigation.ui.NavigationUI

/**
 * A simple [Fragment] subclass.
 */
class AvailableTenderFragment : Fragment() {

    private lateinit var drawerLayout: DrawerLayout

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        val binding = FragmentAvailableTenderBinding.inflate(inflater)

        drawerLayout = binding.drawerLayout

        **val navController = this.findNavController(R.id.nav_host_fragment)**

        **NavigationUI.setupActionBarWithNavController(this, navController, drawerLayout)**

        NavigationUI.setupWithNavController(binding.navView, navController)

        binding.root

    }
}
当我将鼠标悬停在 findnavcontroller.I 上时显示

"To many arguments for public fun Fragment.findNavController():NAvcontroller defined in androidx.navigation.fragment" 我无法解决上面粗体上的错误 lines.In 这种情况我该怎么办?

根据 Navigate to a destination documentation,您导入的 androidx.navigation.fragment.findNavController 不带任何参数(它会找到当前 Fragment 的父级 NavHostFragment,并且不需要 NavHostFragment 的 ID)。

您所写的行,即 findNavController(R.id.nav_host_fragment)setupActionBarWithNavController() 是您在 Activity 中调用的方法,而不是在片段中调用的方法。