以编程方式设置布局权重的正确方法是什么?

时间:2013-08-30 18:53:04

标签: android

我看到这里的几乎所有示例都说这是从代码中设置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"
        >

为什么会这样?我的解决方案有误吗?

1 个答案:

答案 0 :(得分:2)

正如你所说

  

,对应于XML代码

您的xml是正确的,因为layout_height,您拥有的第二个代码段也是正确的。在这种情况下,您的LinearLayout必须有vertical orientation。要使weight正常工作,您的layout_width必须为0dpLinearLayout vertical orientation layout_height必须为0dp LinearLayout.LayoutParams.WRAP_CONTENT }。

在第一个代码段中

height

你的{{1}}哪个错了。它应该是第二个代码段中的0。