Fah*_*Ali 277 android android-relativelayout android-layoutparams
我有一个相对布局,我正在以编程方式创建:
RelativeLayout layout = new RelativeLayout( this );
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
Run Code Online (Sandbox Code Playgroud)
现在我有两个按钮,我想在这个相对布局中添加.但问题是RelatiiveLayout左侧的两个按钮都显示在彼此之间.
buttonContainer.addView(btn1);
buttonContainer.addView(btn2);
Run Code Online (Sandbox Code Playgroud)
现在我想知道如何以编程方式设置按钮的android:layout_alignParentRight="true
"或 android:layout_toLeftOf="@id/btn"
属性",就像我们在xml中一样?
Ric*_*ler 626
您可以使用LayoutParams
代码访问任何代码View.getLayoutParams
.您只需要非常了解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
Run Code Online (Sandbox Code Playgroud)
cod*_*ber 12
btn1.setId(1);
addRule()
,检查这个LayoutParams
对象的android java文档
.要添加RelativeLayout
值为true或false 的属性,请使用0
false和RelativeLayout.TRUE
true:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) button.getLayoutParams()
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE)
Run Code Online (Sandbox Code Playgroud)
不论是否已添加该属性都没关系,您仍然可以使用addRule(verb, subject)
它来启用/禁用它。但是,您可以使用API 17后removeRule(verb)
,它只是的快捷方式addRule(verb, 0)
。
归档时间: |
|
查看次数: |
193417 次 |
最近记录: |