Reg*_*ais 68 android android-layout layoutparams android-relativelayout
我有一个包含在相对布局中的线性布局.它在XML文件中设置为另一个线性布局的右侧(这很好).在某些情况下,我想在活动的onCreate期间更改布局的相对位置,因此我需要修改"右侧"参数以与另一个布局相关联.我试过这个:
RelativeLayout.LayoutParams layoutParams;
layoutParams = (RelativeLayout.LayoutParams) linearLayoutToMove
.getLayoutParams();
layoutParams.addRule(RelativeLayout.RIGHT_OF,
R.id.new_ref_LinearLayout);
Run Code Online (Sandbox Code Playgroud)
但它不起作用:o(
有线索吗?
Mic*_*ael 147
您无法删除规则,因为所有规则始终存储在固定大小的Java数组中.但是你可以设置规则0.例如
layoutParams.addRule(RelativeLayout.RIGHT_OF, 0);
layoutParams.addRule(RelativeLayout.BELOW, R.id.new_ref_LinearLayout);
Run Code Online (Sandbox Code Playgroud)
编辑(感谢Roger Rapid):
从API级别17开始,该类RelativeLayout.LayoutParams具有以下方法:
public void removeRule(int verb)
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用以下代码行删除规则:
layoutParams.removeRule(RelativeLayout.RIGHT_OF);
Run Code Online (Sandbox Code Playgroud)
并且您将获得与"添加"零规则时完全相同的结果:
layoutParams.addRule(RelativeLayout.RIGHT_OF, 0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32089 次 |
| 最近记录: |