java - 如何以编程方式设置相对布局中 TextViews 的对齐父右属性

标签 java android xml android-relativelayout layoutparams

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

 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/

相关文章:

android - 向 CollapsingToolbarLayout 添加褪色稀松布

javascript - XSLT下拉菜单不调用javascript函数

xml - 即使我已将其设置为零,外部图形上方仍有空间

java - Spring 可分页 : Nav Bar Pages by TotalPages

Android Parcel Unmarshalling 未知类型代码

java - 为自定义对话框设置标题

android - 使用 Flutter 访问大量 JSON Assets

java - Java 中的 W3C dom api

java - 为什么 getResource() 方法在 JDK 11 中返回 null?

JavaScript 和 Json : Excluding Fields From Serialization and Deserialization