如何以编程方式在相对布局中设置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="trueandroid: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 
  1. 你需要创build和id你需要参考的button: btn1.setId(1);
  2. 你可以使用paramsvariables添加参数到你的布局,我认为这个方法是addRule() ,检查出这个LayoutParams对象的android java文档。