如何以编程方式在相对布局中设置按钮的layout_align_parent_right属性?

我有一个以编程方式创建的相对布局:


 RelativeLayout layout = new RelativeLayout( this );

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,

            LayoutParams.WRAP_CONTENT);

现在,我有两个按钮要添加到此相对布局中。但是问题是两个按钮都显示在RelatiiveLayout的左侧,彼此重叠。


buttonContainer.addView(btn1);

buttonContainer.addView(btn2);

现在,我想知道如何像在xml中一样以编程方式设置按钮的android:layout_alignParentRight="true“或” android:layout_toLeftOf="@id/btn"属性?


RISEBY
浏览 842回答 3
3回答

慕尼黑的夜晚无繁华

您可以使用来访问任何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

杨__羊羊

您需要为需要引用的按钮创建ID和ID: btn1.setId(1);您可以使用params变量将参数添加到布局中,我认为方法是addRule(),查看此LayoutParams对象的android java文档 。

慕码人2483693

要添加RelativeLayout值为true或false 的属性,请使用0false和RelativeLayout.TRUEtrue:RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) button.getLayoutParams()params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE)不要紧,无论是否已经添加的属性,你仍然可以使用addRule(verb, subject)启用/禁用它。但是,您可以使用API 17后removeRule(verb),它只是的快捷方式addRule(verb, 0)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android