如何在点击recyclerView项目的ItemView上切换不同的片段?科特林



我想在单击回收器视图的itemView时将当前片段(包含回收器视图(切换到另一个片段。

适配器代码

class pastActivity_adapter(选项:FirestoreRecyclerOptions,val context:context(:FirestoreRecyclerAdapter<UserIssue,pastActivity_adapter.MyViewHolder>(选项({

class MyViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView){
val author_name : TextView = itemView.findViewById(R.id.post_author_name)
val author_defect : TextView = itemView.findViewById(R.id.defect_post_text)
val author_hostel : TextView = itemView.findViewById(R.id.author_hostel_no)

}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val itemView = LayoutInflater.from(parent.context).inflate(R.layout.item_view_recycler,parent,false)
return MyViewHolder(itemView)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int, model: UserIssue) {
val db = FirebaseFirestore.getInstance()
val userId = FirebaseAuth.getInstance().currentUser?.uid
val userRef = db.collection("Users")
holder.author_defect.text = model.issueDefect
holder.author_hostel.text = "Hostel no. ${model.userHostelno}"
holder.dateTime.text = model.issueDataTime
holder.typeIssue.text = "IssueType - ${model.issueType}"
if (model.admin_resolved_checkbox){
holder.processStatus.setImageDrawable(ContextCompat.getDrawable(context,R.drawable.greentick_icon))
}
**holder.itemView.setOnClickListener{
FragmentActivity.beginTransaction()
.replace(R.id.view_complaint_fragment, view_allComplaint())
.commit()
}
}**

}

XML文件

<FrameLayout
android:id="@+id/view_complaint_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"></FrameLayout>

<androidx.constraintlayout.widget.constraintlayout>

(anyViewContext as? Activity)?.supportFragmentManager.beginTransaction().replace(containorId, Fragment()).commitAllowingStateLoss()

应该是

在我的情况下,这适用于

holder.itemView.setOnClickListener {
val transaction = (context as pastRegistrationActivity).supportFragmentManager.beginTransaction()
val fragmentwo = detailComplaintView()
transaction.replace(R.id.view_complaint_fragment,fragmentwo)
transaction.addToBackStack(null)
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
transaction.commit()
}

最新更新