我有一个相对布局,我正在以编程方式创建:
RelativeLayout layout = new RelativeLayout( this );
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
现在我想在这个相对布局中添加两个TextView。但问题是TextViews显示在RelativeLayout左侧彼此重叠。
textViewContainer.addView(textView1);
textViewContainer.addView(textView2);
现在我想知道如何以编程方式设置
`android:layout_alignParentRight="true"`
或
`android:layout_toLeftOf="@id/textView"`
TextViews的属性和我们在xml中的做法一样?
答案 0 :(得分:1)
您可以使用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)textView.getLayoutParams();
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
params.addRule(RelativeLayout.LEFT_OF, R.id.id_to_be_left_of);
textView.setLayoutParams(params); //causes layout updat
答案 1 :(得分:0)
使用方法addrule
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
答案 2 :(得分:0)
您需要将LayoutParams与每个视图对齐:
button
然后为每个视图添加适当的规则:
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
到第一个和
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
到第二个。
然后将其应用于视图:
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);