我看到这里的几乎所有示例都说这是从代码中设置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"
>
为什么会这样?我的解决方案有误吗?
答案 0 :(得分:2)
正如你所说
,对应于XML代码
您的xml是正确的,因为layout_height
,您拥有的第二个代码段也是正确的。在这种情况下,您的LinearLayout
必须有vertical orientation
。要使weight
正常工作,您的layout_width
必须为0dp
,LinearLayout
vertical orientation
layout_height
必须为0dp
LinearLayout.LayoutParams.WRAP_CONTENT
}。
在第一个代码段中
height
你的{{1}}哪个错了。它应该是第二个代码段中的0。