如何在不影响父视图的情况下设置子视图的Layoutparams?

时间:2013-05-08 18:30:57

标签: android android-layout layout resize

我有一个列表的自定义行视图。假设父母和孩子都有2个组成部分......我希望在改变孩子的身高时保持父母的身高不变......

我已将父高度设置为常量,并且子项的高度会动态变化。

<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是变化的高度变量。 父母的身高仍然受到影响。任何解决方案?

1 个答案:

答案 0 :(得分:0)

如果LinearLayout是根视图,当你给它充气时,android会更改params:layout_width和android:layout_height,如果它是列表中的一行,那么它们将具有宽度match_parent和高度wrap_content 。如果要为行保持恒定高度,则必须在向视图膨胀后以编程方式设置布局参数。