如何设置子视图的Layoutparams而不影响父视图



我有一个列表的自定义行视图。假设有两个组件:父组件和子组件....当我改变子元素的高度时,我想让父元素的高度保持不变…

我将父高度设置为常量,而子高度是动态变化的。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/parent"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:background="#fff"
android:orientation="vertical" >

<RelativeLayout
    android:id="@+id/child"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/icon" />
</RelativeLayout>
</LinearLayout>

和运行时

child.setLayoutParams(new LayoutParams(30, x);

,其中x是一个可变高度变量。父结点的高度仍然受到影响。有解决方案吗?

如果LinearLayout是根视图,当你膨胀它的参数android:layout_width和android:layout_height被android改变,如果它是一个列表中的一行,那么它们将有宽度match_parent和高度wrap_content。如果你想为行保持一个恒定的高度,你必须在你膨胀视图后以编程方式设置布局参数。

最新更新