如何以编程方式在相对布局中设置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文档。