android-recyclerview - 如何使用来自 RecyclerView 元素的点击的导航组件?

标签 android-recyclerview navigation android-architecture-navigation

我有一个提要片段,它的主要元素是帖子的 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.itemViewviewHolder.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/

相关文章:

kotlin - 为 RecyclerView 声明适配器的最佳方式

javascript - jQuery - 单击和按键事件的行为相同

android - 旋转时导航组件崩溃

android - 用导航组件导航替换 fragment 后, fragment 内的 ViewPager2 泄漏

java - Recyclerview 无尽的滚动重新加载页面 onscroll

android - 滚动后 Recyclerview 项目位置 NOT_FOUND

android - 跳过 GridLayoutManager android 中的单元格

navigation - 改变 View - Sencha

html - 内联导航

Android 导航组件 - 设置 HasOptionsMenu 会使 NavigateUp 按钮无效