为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

RISEBY 2019-11-06 10:26:25
我有一个以编程方式创建的相对布局: 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"属性?
查看完整描述

3 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

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


查看完整回答
反对 回复 2019-11-06
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

  1. 您需要为需要引用的按钮创建ID和ID: btn1.setId(1);

  2. 您可以使用params变量将参数添加到布局中,我认为方法是addRule(),查看此LayoutParams对象的android java文档 。


查看完整回答
反对 回复 2019-11-06
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

要添加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)。


查看完整回答
反对 回复 2019-11-06
  • 3 回答
  • 0 关注
  • 841 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信