RecyclerView中lv_container容器无法调高高度的问题求助
首先咱们来定位核心问题:你的lv_container(白色容器)在XML布局里设置了**android:layout_alignTop="@+id/dashboard_part_image"和android:layout_alignBottom="@+id/dashboard_part_image"**这两个属性,这就是导致它高度无法自由调整的关键。
在RelativeLayout的布局规则里,这两个对齐属性的优先级极高——它们会强制lv_container的高度完全匹配dashboard_part_image的高度,不管你在代码里给它设置多少height值,都会被这两个规则直接覆盖。而main_container和item的高度能正常变化,是因为它们没有被这种强制绑定的对齐属性限制。
具体解决步骤:
移除强制对齐约束
打开你的item布局XML,找到lv_container对应的RelativeLayout标签,删掉以下两行代码:android:layout_alignBottom="@+id/dashboard_part_image" android:layout_alignTop="@+id/dashboard_part_image"替换为合适的对齐规则
根据你的UI需求,给lv_container设置不绑定ImageView高度的对齐方式,比如让它在垂直方向居中:android:layout_centerVertical="true"如果你需要它和
main_container的顶部/底部对齐,也可以用layout_alignParentTop、layout_alignParentBottom等属性,避免再和ImageView的高度绑定。验证代码逻辑
保持你原本设置LayoutParams的代码不变,现在没有了强制对齐的约束,lvContainerParams.height的设置应该就能正常生效了。如果还是有异常,可以尝试在设置完LayoutParams后调用lvContainer.requestLayout()(不过通常系统会自动触发重绘)。
按照这个方案调整后,lv_container的高度应该就能正常跟随你代码中的设置变化了!
内容的提问来源于stack exchange,提问作者Turvy

