2013-05-08 2 views
1

У меня есть собственный список строк для списка. Скажем, что есть 2 компонента родителя и ребенка .... Я хочу, чтобы высота родителя была постоянной, когда я меняю высоту ребенка ...Как установить 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); 

где х переменной высоты изменяющуюся. По-прежнему страдает высота родителя. любые решения?

+0

Не могли бы вы предоставить более подробную информацию: 1) Есть ли другие дети (братья и сестры)? 2) Является ли родитель linearlayout родителем макета, или он встроен в другой макет (и если да, то каков параметр layout_height для этого родителя)? 3) Вы когда-либо устанавливали x больше 150dp (высота вашего родителя)? – user1676075

+0

1) эй, есть другие братья и сестры, но ничего не зависит друг от друга 2) Linearlayout - это корневая компоновка, у нее нет родителя 3) Нет, я не устанавливал x> 150 когда-либо – Ajay

ответ

0

Если LinearLayout является корневым представлением, когда вы его накачиваете, параметры android: layout_width и android: layout_height изменяются андроидом, если это строка внутри списка, тогда они будут иметь ширину match_parent и высоту обернуть содержимое. Если вы хотите сохранить постоянную высоту для строки, вам необходимо будет установить параметры макета программно после раздувания представления.

Смежные вопросы