如何在RelativeLayout中以编程方式将视图放在另一个视图下?

时间:2013-11-11 06:53:57

标签: android relativelayout

如果我向View添加两个RelativeLayout,则较新的View与旧的RelativeLayout rela = (RelativeLayout) findViewById(...); rela.addView(v1); rela.addView(v2); 重叠。但由于某些原因,我无法首先添加我想放在底部的v1。谁能告诉我如何解决这个问题?

v2

我希望Layout OVERLAP {{1}}。我不能使用其他{{1}},因为这是大型项目的一部分。

4 个答案:

答案 0 :(得分:1)

因为我没有得到正确的答案。我必须重写整个程序。这就是我做的: 我先添加v2,然后添加v1。然后,我将v1的可见性设置为View.Gone。我不知道是否有更好的方法来解决这个问题。

答案 1 :(得分:0)

如果你想在其他视图上添加视图......那么你可以使用FrameLayout ......在RelativeLayout中...... 希望这会对你有所帮助......

答案 2 :(得分:0)

如果要在其他视图的底部添加视图。您可以使用LinearLayout(垂直方向)。但是如果你想将视图添加到RelativeLayout的底部。试试这个:

首先,如果你想引用它,你的RelativeLayout需要一个ID:

RelativeLayout rLayout = (RelativeLayout)findViewById(R.id.yourRelativeId);

然后为对象创建一些LayoutParams(在这种情况下,你的admob adview),告诉它将自己对齐到底部(并且不与任何其他视图对齐,这样它不会被推离屏幕或移动到其他观点):

RelativeLayout.LayoutParams rLParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
rLParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 1);

接下来,使用LayoutParams将视图添加到RelativeLayout:

rLayout.addView(yourAdView, rLParams);

答案 3 :(得分:0)

您可以将Rule添加到RelativeLayout。比如说:

   p.addRule(RelativeLayout.ALIGN_BOTTOM, existingView.getId());

上述规则会将新视图与现有视图下方的视图对齐。 您可以阅读有关此here

的更多信息