我有一个提要片段,它的主要元素是帖子的 RecyclerView。
我正在使用 Lisa Wray 的 Groupie 库管理回收站
https://github.com/lisawray/groupie
现在在我的导航图中,我有一个将提要片段连接到另一个片段的操作,我尝试使用我在适配器的绑定(bind)函数中创建的点击监听器来调用此操作。
val action=FeedFragmentDirections.actionDestinationFeedToDestinationAddToBucket(image.id)
findNavController().navigate(action)
我不断收到一条错误消息
navigation destination XXXXX is unknown to this NavController
我尝试在
findNavController()
之前添加一些内容,如 viewHolder.itemView
或 viewHolder.root
但没有任何效果。当我使用
viewHolder.itemView.rootView
我得到了这个错误而不是 View DecorView@a190adf[MainActivity] does not have a NavController set
我不知道 DecorView 是什么。有什么想法可以正确实现我的 oncick 听众吗?
最佳答案
使用 itemView 似乎也可以工作,因为这就是我的代码:
class RecyclerSettingsItem(
private val activity: MainActivity,
private val settingItem: String
) : Item<GroupieViewHolder>() {
override fun bind(viewHolder: GroupieViewHolder, position: Int) {
var navController: NavController? = null
viewHolder.apply {
with(viewHolder.itemView) {
tvTitle.text = settingItem
itemView.setOnClickListener {
navController = Navigation.findNavController(itemView)
navController!!.navigate(R.id.action_settingsFragment_to_contactTracingFragment)
}
}
}
}
override fun getLayout() = R.layout.rv_settings_item_row
}
关于android-recyclerview - 如何使用来自 RecyclerView 元素的点击的导航组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55367018/