我有一个相对布局,我正在以编程方式创建:
RelativeLayout layout = new RelativeLayout( this );
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
现在我有两个按钮,我想在这个相对布局中添加 . 但问题是RelatiiveLayout左侧的两个按钮都显示在彼此之间 .
buttonContainer.addView(btn1);
buttonContainer.addView(btn2);
现在我想知道如何以编程方式设置按钮的 android:layout_alignParentRight="true
“或 android:layout_toLeftOf="@id/btn"
属性,就像我们在xml中一样?
3 回答
您可以使用
View.getLayoutParams
从代码访问任何LayoutParams
. 您只需要非常了解LayoutParams
您的访问权限 . 这通常是通过检查包含ViewGroup
,如果它有一个LayoutParams
内部子项然后's the one you should use. In your case it' sRelativeLayout.LayoutParams
来实现的 . 你将使用RelativeLayout.LayoutParams#addRule(int verb)和RelativeLayout.LayoutParams#addRule(int verb, int anchor)您可以通过代码访问它:
您需要为需要重新引用的按钮创建和标识:
btn1.setId(1);
你可以使用params变量为你的布局添加参数,我认为方法是
addRule()
,查看这个LayoutParams
对象的android java文档 .要添加值为true或false的
RelativeLayout
属性,请使用0
表示false,使用RelativeLayout.TRUE
表示true:无论该属性是否已添加都无关紧要,您仍然使用
addRule(verb, subject)
来启用/禁用它 . 但是,在API 17之后,您可以使用removeRule(verb)
这只是addRule(verb, 0)
的快捷方式 .