2013-08-30 92 views
0

我看到,這裏幾乎每樣說,這是設置layout_weight從代碼的方式:以編程方式設置佈局重量的正確方法是什麼?

linearLayoutView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 
                    LinearLayout.LayoutParams.WRAP_CONTENT, 
                    1f)); 

然而,這並不在我的情況下工作。只有這一點,在我的情況的工作原理是:

linearLayoutView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 
                    0, 
                    1f)); 

對應於XML代碼

<LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     > 

這究竟是爲什麼?我的解決方案錯了嗎?

回答

2

正如你所說

對應於XML代碼

你的XML是正確的,所以是第二代碼片段,你有因爲layout_height的。在這種情況下,您的LinearLayout必須有vertical orientation。爲使weight正常工作,您的layout_width必須爲0dp,併爲LinearLayoutvertical orientation您的layout_height必須是0dp

在第一代碼片段你有

LinearLayout.LayoutParams.WRAP_CONTENT 

height這是不對的。它應該是0,就像在你的第二個代碼片段中一樣。

相關問題