setOnClickListener RecycleView(在一个片段中)导航到另一个片段
Posted
技术标签:
【中文标题】setOnClickListener RecycleView(在一个片段中)导航到另一个片段【英文标题】:setOnClickListener RecycleView (in a Fragment) navigate to another Fragment 【发布时间】:2022-01-10 01:14:44 【问题描述】:我在Fragment
中有RecycleView
。当我单击RecyclerView
中的一项时,我想打开新的Fragment
。第二个Fragment
没有替换前一个但Fragment
被覆盖
Image。我该如何解决这个问题?
我的适配器:
override fun onBindViewHolder(holder: ViewHolder, position: Int)
// Get element from your dataset at this position and replace the
// contents of the view with that element
val currentProduct = productList[position]
holder.image.setImageBitmap(currentProduct.image)
holder.title.text = currentProduct.title
holder.price.text = currentProduct.price.toString()+"€"
//Go to product details
holder.itemView.setOnClickListener
val activity = it.context as AppCompatActivity
val detailsFragment = ProductDetailsFragment()
activity.supportFragmentManager.beginTransaction().replace(R.id.fragment,detailsFragment).addToBackStack(null).commit()
【问题讨论】:
【参考方案1】:使用导航组件,流畅地导航到(action_from1fragment_to2fragment)。
如果你想打开特定的对话框,带有特定数据的片段,你可以在适配器中使用 lambda 来为视图模型、片段提供 id。
【讨论】:
我可以使用导航组件,但问题是我在不同的片段中使用了两倍的recycleview。例如:profilepage->details and product ->details 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。 也许这只是解决方法,但试试这个。 binding.recyclerView.visibility = View.GONE 以及所有需要在该可见性上消失的东西。【参考方案2】:简单的答案是将elevation
和background color
添加到第二个片段的父布局中,并将clickable
和focusable
等参数设置为true
。
你的onClick
为recyclerView
工作正常。
【讨论】:
以上是关于setOnClickListener RecycleView(在一个片段中)导航到另一个片段的主要内容,如果未能解决你的问题,请参考以下文章
来自 button.setOnClickListener() 的 NullPointerException