Android RecyclerView中CardView内色条设置match_parent高度不显示如何解决
问题原因
当前布局中CardView的高度由内部两个TextView的内容动态撑开,CardView的直接子布局RelativeLayout高度匹配CardView高度。但RelativeLayout的测量逻辑中,当父布局处于wrap_content的测量阶段时,高度设为match_parent的子View会被测量为0高度,因此色条无法显示。
解决方案
方案1:最小改动(保留现有RelativeLayout结构)
无需修改其他布局代码,仅给id为swatch的色条View添加两个对齐属性即可:
<View android:id="@+id/swatch" android:layout_width="12dp" android:layout_height="match_parent" android:layout_alignParentTop="true" android:layout_alignParentBottom="true" />
添加后RelativeLayout会将色条的上下边界与父布局上下边界强制对齐,色条会自动撑满整个CardView的高度。
方案2:替换为ConstraintLayout(更利于后续扩展)
如果后续有复杂的布局调整需求,也可以将CardView内部的RelativeLayout替换为ConstraintLayout,通过约束实现色条自适应高度,示例如下:
<androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingEnd="14dp"> <View android:id="@+id/swatch" android:layout_width="12dp" android:layout_height="0dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" /> <TextView android:id="@+id/pathTitle" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="14dp" android:padding="2dp" android:text="@string/placeholder_title" android:textColor="@android:color/black" android:textSize="14sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/swatch" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/pathDescription" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginBottom="14dp" android:padding="2dp" android:text="@string/placeholder_title" android:textColor="@android:color/black" android:textSize="14sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/swatch" app:layout_constraintTop_toBottomOf="@id/pathTitle" app:layout_constraintBottom_toBottomOf="parent"/> </androidx.constraintlayout.widget.ConstraintLayout>
内容的提问来源于stack exchange,提问作者cesarcarlos
相关产品推荐
相关产品推荐

