我有一个以编程方式创建的相对布局:
RelativeLayout layout = new RelativeLayout( this );
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
现在我有两个 TextView,我想将其添加到这个相对布局中。但问题是两个 TextView 都显示在relativelayout 的左侧,彼此重叠。
textViewContainer.addView(textView1);
textViewContainer.addView(textView2);
现在我想知道如何以编程方式设置
`android:layout_alignParentRight="true"`
或
`android:layout_toLeftOf="@id/textView"`
TextView 的属性与我们在 xml 中所做的一样吗?
最佳答案
您可以使用 View.getLayoutParams 从代码中访问任何 LayoutParams。您只需要非常了解您访问的 LayoutParams 即可。这通常是通过检查包含的 ViewGroup 是否具有 LayoutParams 内部子级来实现的,那么这就是您应该使用的 View 组。在你的例子中它是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
关于java - 如何以编程方式设置相对布局中 TextViews 的对齐父右属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41996802/