我正在实现带有项目网格列表的RecyclerView,如下所示。最初,每个网格项目都是不可见的,单击其区域将使其可见。
override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {
viewHolder.itemView.setOnClickListener {
show()
}
}
此外,网格项目具有按钮,单击该按钮会将用户定向到另一个屏幕。但是,单击按钮的onClick侦听器时不会触发它。而是调用其在视图持有者的itemView的onClick侦听器下面(即,将显示红色项目)。我认为这是由于两个项目的重叠区域。但是,需要保留设计,如何解决此问题的任何想法?
以下是为视图项定义的布局
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/main_image_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="invisible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription"
tools:visibility="visible" />
<LinearLayout
android:id="@+id/edit_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:orientation="horizontal"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:visibility="invisible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_image_view"
tools:visibility="visible">
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:src="@drawable/btn_edit"
tools:ignore="ContentDescription" />
<TextView
style="@style/edit_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="1dp"
android:text="@string/edit_button" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>