我需要以编程方式更改布局的值topMargin。我尝试了以下方法:
android.widget.LinearLayout.LayoutParams lp_ll = new LinearLayout.LayoutParams(
spaceBtnWidth, buttonHeight);
lp_ll.height = LayoutParams.WRAP_CONTENT;
lp_ll.width = LayoutParams.WRAP_CONTENT;
lp_ll.gravity = Gravity.CENTER_HORIZONTAL;
lp_ll.topMargin = rowDistance;
ll3.setLayoutParams(lp_ll);
ll4.setLayoutParams(lp_ll);
ll5.setLayoutParams(lp_ll);
我希望我的所有3个布局ll3,ll4和ll5都使用lp_ll中的相同属性。问题是现在只有我的第一个布局ll3才能接受它。其他两个不改变。我甚至尝试了不同的顺序,并把我设置ll4的行放在ll3和ll5行之上。无论如何ll3正在设置,其他两个不会改变它们的属性。 感谢
答案 0 :(得分:0)
为每个布局创建lp_ll
ll4.setLayoutParams(new LinearLayout.LayoutParams(lp_ll));
ll5.setLayoutParams(new LinearLayout.LayoutParams(lp_ll));
答案 1 :(得分:0)
您可以像这样编辑代码:
android.widget.LinearLayout.LayoutParams lp_ll = new LinearLayout.LayoutParams(
spaceBtnWidth, buttonHeight);
lp_ll.height = LayoutParams.WRAP_CONTENT;
lp_ll.width = LayoutParams.WRAP_CONTENT;
lp_ll.gravity = Gravity.CENTER_HORIZONTAL;
lp_ll.topMargin = rowDistance;
ll3.setLayoutParams(lp_ll);
ll4.setLayoutParams(ll3.getLayoutParams());
ll5.setLayoutParams(ll3.getLayoutParams());
它仍然会这样做,我希望这有帮助。