如何以编程方式在相对布局中设置button的layout_align_parent_right属性?
我有一个相对的布局,我正在编程创build:
RelativeLayout layout = new RelativeLayout( this ); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
现在我有两个button,我想添加在这个相对的布局。 但问题是两个button都显示在RelatiiveLayout左侧相互重叠。
buttonContainer.addView(btn1); buttonContainer.addView(btn2);
现在我想知道如何以编程方式设置android:layout_alignParentRight="true
的android:layout_alignParentRight="true
”或android:layout_toLeftOf="@id/btn"
属性,就像我们在xml中一样?
您可以使用View.getLayoutParams
从代码访问任何LayoutParams
。 你只需要非常清楚你访问的是什么LayoutParams
。 这通常是通过检查包含ViewGroup
如果它有一个LayoutParams
内部孩子,那么这就是你应该使用的。 在你的情况是RelativeLayout.LayoutParams
。 你将会使用RelativeLayout.LayoutParams#addRule(int verb)
和RelativeLayout.LayoutParams#addRule(int verb, int anchor)
你可以通过代码得到它:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)button.getLayoutParams(); params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); params.addRule(RelativeLayout.LEFT_OF, R.id.id_to_be_left_of); button.setLayoutParams(params); //causes layout update
- 你需要创build和id你需要参考的button:
btn1.setId(1);
- 你可以使用paramsvariables添加参数到你的布局,我认为这个方法是
addRule()
,检查出这个LayoutParams
对象的android java文档。