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"
        >

为什么会这样?我的解决方案错了吗?

4

1 回答 1

2

如你所说

对应于 XML 代码

您的 xml 是正确的,因此您拥有的第二个代码片段也是正确的,因为layout_height. 在这种情况下你LinearLayout必须有一个。vertical orientation为了weight正常工作,你的layout_width必须是0dp和你的LinearLayout必须是。vertical orientationlayout_height0dp

在您拥有的第一个代码段中

LinearLayout.LayoutParams.WRAP_CONTENT

对于你height这是错误的。它应该是 0 在您的第二个代码段中。

于 2013-08-30T19:01:24.233 回答