无法在 Recycleview 中更改容器的高度

Impossible to change the height of a container in Recycleview

几个小时以来我遇到了一个大麻烦;

我有一个 recyclerview,每个项目都有几个元素。对于其中一个(lv_container),我可以降低它的高度但不能增加它。

见截图:

xml:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="5dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:orientation="vertical"
    android:padding="10dp">

    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/dashboard_part_medical_file_locked_title"
        android:textSize="18sp"
        android:textStyle="bold" />

    <RelativeLayout
        android:id="@+id/main_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/row_dashboard_color"
        android:orientation="horizontal"
        android:padding="10dp">

        <ImageView
            android:id="@+id/dashboard_part_image"
            android:layout_width="80dp"
            android:layout_height="95dp"
            android:layout_alignParentEnd="true"
            android:paddingBottom="20dp"
            android:paddingEnd="10dp"
            android:paddingStart="10dp"
            android:paddingTop="20dp"
            android:src="@drawable/dossier_medical" />


        <RelativeLayout
            android:id="@+id/lv_container"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/dashboard_part_image"
            android:layout_alignParentStart="true"
            android:layout_alignTop="@+id/dashboard_part_image"
            android:layout_toStartOf="@+id/dashboard_part_image"
            android:background="@android:color/white"
            android:padding="10dp">

            <ImageView
                android:id="@+id/sup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_centerVertical="true"
                android:src="@drawable/ic_sup" />

            <TextView
                android:id="@+id/text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_centerVertical="true"
                android:layout_toStartOf="@id/sup"
                android:text="@string/dashboard_part_medical_file_inside" />
        </RelativeLayout>

    </RelativeLayout>
</LinearLayout>

和viewholder的代码

DisplayMetrics metrics = pContext.getResources().getDisplayMetrics();

RelativeLayout.LayoutParams lvContainerParams = (RelativeLayout.LayoutParams) lvContainer.getLayoutParams();
lvContainerParams.width = RelativeLayout.LayoutParams.WRAP_CONTENT;
lvContainerParams.height = (int) (40 * metrics.density + 20 * metrics.density);
lvContainer.setLayoutParams(lvContainerParams);

ViewGroup.LayoutParams mainContainerParams = mainContainer.getLayoutParams();
mainContainerParams.height = (int) (lvContainerParams.height + 20 * metrics.density);
mainContainer.setLayoutParams(mainContainerParams);

ViewGroup.LayoutParams params = itemView.getLayoutParams();
params.height = (int) (mainContainerParams.height + 50 * metrics.density);
itemView.setLayoutParams(params);

当我更改 lvContainer(白色容器)的高度时,mainContainer 的高度已被很好地修改(如您在蓝色容器中所见),但白色容器始终保持固定。但是,在调试中,高度计算得很好。 我尝试调用 lvContainer.invalidate() and/or lvContainer.requestLayout(),但没有任何改变。

错误是什么?为什么item和mainContainer的高度可以修改,lvContainer的这个不行?

我需要你的帮助 谢谢

尝试删除此行

android:layout_alignBottom="@+id/dashboard_part_image"