对于公共乐趣 Fragment.findNavController() 的许多论点
Posted
技术标签:
【中文标题】对于公共乐趣 Fragment.findNavController() 的许多论点【英文标题】:To many arguments for public fun Fragment.findNavController() 【发布时间】:2020-04-30 20:42:35 【问题描述】: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
“To many arguments for public fun Fragment.findNavController():NAvcontroller defined in androidx.navigation.fragment”当我将鼠标悬停在 findnavcontroller 上时显示。我无法解决上述粗线中的错误。在这种情况下是什么我应该怎么做?
【问题讨论】:
findNavController(R.id.nav_host_fragment)
和 setupActionBarWithNavController
是您在 Activity 中调用的方法,而不是在 Fragment 中调用的方法。你能解释一下你的应用程序的设置吗?
感谢您的回答!哦!是的,我写错地方了,对我很有帮助。
【参考方案1】:
按照Navigate to a destination documentation,你导入的androidx.navigation.fragment.findNavController
不带参数(它找到当前Fragment的父NavHostFragment,不需要NavHostFragment的ID)。
您编写的行,即findNavController(R.id.nav_host_fragment)
和setupActionBarWithNavController()
是您将在活动中调用的方法,而不是在片段中。
【讨论】:
如果这有助于回答您的问题,请确保接受该答案以将该问题从未回答的问题队列中删除。祝你好运! 这很令人困惑,为什么:val navController = findNavController()
bottomNavigation.setupWithNavController(navController)
在具有导航主机的片段的onActivityCreated()
内不起作用?以上是关于对于公共乐趣 Fragment.findNavController() 的许多论点的主要内容,如果未能解决你的问题,请参考以下文章