android - 如何以编程方式在 RelativeLayout 中布置 View ?

标签 android android-layout android-view android-relativelayout

我正在尝试以编程方式(而不是通过 XML 以声明方式)实现以下目标:

<RelativeLayout...>
   <TextView ...
      android:id="@+id/label1" />
   <TextView ...
      android:id="@+id/label2"
      android:layout_below: "@id/label1" />
</RelativeLayout>

换句话说,如何让第二个 TextView 出现在第一个下方,但我想用代码实现:

RelativeLayout layout = new RelativeLayout(this);
TextView label1 = new TextView(this);
TextView label2 = new TextView(this);
...
layout.addView(label1);
layout.addView(label2);
setContentView(layout);

更新:

谢谢,TreeUK。我了解大体方向,但它仍然不起作用 - “B”与“A”重叠。我做错了什么?

RelativeLayout layout = new RelativeLayout(this);
TextView tv1 = new TextView(this);
tv1.setText("A");

TextView tv2 = new TextView(this);
tv2.setText("B");
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.FILL_PARENT);
lp.addRule(RelativeLayout.RIGHT_OF, tv1.getId());

layout.addView(tv1);        
layout.addView(tv2, lp);

最佳答案

根据我能够拼凑的内容,您必须使用 LayoutParams 添加 View 。

LinearLayout linearLayout = new LinearLayout(this);

RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(
        LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
relativeParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);

parentView.addView(linearLayout, relativeParams);

所有功劳都归功于 sechastain,要以编程方式相对定位您的项目,您必须为它们分配 ID。

TextView tv1 = new TextView(this);
tv1.setId(1);
TextView tv2 = new TextView(this);
tv2.setId(2);

然后 addRule(RelativeLayout.RIGHT_OF, tv1.getId());

关于android - 如何以编程方式在 RelativeLayout 中布置 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3433792/

相关文章:

Android:扩充布局并将其写入 PDF 会产生空白 PDF

android - 应用程序 :mergeTestReleaseResourcesAAPT err(Facade for 495460572) :

java - Android 项目 NullPointerException 尝试调用位图图像上的 Files.readAllBytes(Paths.get ("Image Path")))

Android:如何制作默认拨号器应用程序?

android - Android XML 样式属性是否未按顺序覆盖?

android - 在开发 Android 应用程序时,您遇到的错误列表是什么?

android - SlidingPaneLayout - 褪色的 View 有奇怪的背景

Android: View 的 anchor 更改后 setTranslationX 出现故障

android - 如何获取包括 subview 在内的布局中的 View 总数

java - Android java将两个相似的for循环合并为一个循环