android - 对于公共乐趣 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 上时,“对于 public fun Fragment.findNavController():NAvcontroller defined in androidx.navigation.fragment”的许多参数显示。我无法解决上述粗体线上的错误。在这种情况下,我该怎么办?
解决方案
根据Navigate to a destination documentation,androidx.navigation.fragment.findNavController
您导入的不带任何参数(它会找到当前 Fragment 的父 NavHostFragment 并且不需要 NavHostFragment 的 ID)。
您编写的行,即findNavController(R.id.nav_host_fragment)
和setupActionBarWithNavController()
是您在 Activity 中调用的方法,而不是在 Fragment 中调用的方法。
推荐阅读
- python - 将文本日期转换为年+月进行排序(即 1/19/2019 到 201901)
- tensorflow - LSTM(Keras)中样本步长和时间步长之间的差异
- php - 页面无法通过 GET 或 POST 请求访问我的 cookie
- python - 在python3中计算文本文件的单词
- python - 如何设置要在随机搜索中使用的指数分布的界限?
- mysql - 同一个表中的 SQL 嵌套组
- ruby-on-rails - 在一对一的关系中,是否可以在删除其他孩子之前检查验证?
- firebase - Firebase 数据库规则设置为拒绝所有访问。但是 Firebase Functions 可以通过任何方式访问它
- python - 如何使用python根据句子中的关键词过滤xlsx文件中的数据?
- python - 将链表基本复制到另一个链表