遇到了这个如题所示问题,网上搜的都是自定义一个 MaxHeightRecyclerView 继承自 RecyclerView,然后重绘它的 onMeasure 方法,大概如下:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (mHeightMax > 0) {
heightMeasureSpec = MeasureSpec.makeMeasureSpec(mHeightMax, MeasureSpec.AT_MOST);
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
,但是自己无意中发现可以直接使用
app:layout_constraintHeight_max="210dp"
解决之,最好再搭配一个滚动条
android:scrollbars="vertical"
较为完整的如下:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/virtual_list"
android:paddingVertical="10dp"
android:layout_width="match_parent"
android:background="@color/hairstyle_item_normal"
android:layout_height="wrap_content"
app:layout_constraintHeight_max="210dp"
android:scrollbars="vertical"
app:layout_constraintBottom_toBottomOf="parent"/>
|