2013-05-08 81 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); 

其中x是變化的高度變量。 父母的身高仍然受到影響。任何解決方案

+0

你能提供更詳細一點: 1)是否有任何其他的孩子(兄弟姐妹)? 2)線性佈局父級是佈局的父級,還是嵌入在另一個佈局中(如果是,則該父級的layout_height設置是什麼)? 3)你有沒有設置x大於150dp(你的父母身高)? – user1676075 2013-05-08 18:35:36

+0

1)哎,還有其他的兄弟姐妹,但沒有依賴於彼此 2)的LinearLayout是根佈局,它不具有任何父 3)任何我不設置X> 150永遠 – Ajay 2013-05-09 05:17:17

回答

0

如果LinearLayout是根視圖,當你膨脹它時,參數android:layout_width和android:layout_height被android改變,如果它是列表中的一行,那麼它們將具有寬度match_parent和高度包裝內容。如果要保持行的高度不變,則必須在膨脹視圖後以編程方式設置佈局參數。

相關問題