2013-08-30 59 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,就像在你的第二个代码片段中一样。

相关问题