我有一个linearlayout作为两个相对布局的容器。两个相对布局都出现在屏幕上,但它们是并排的。我希望他们是顶部和底部。看起来linearlayout初始化默认为Horizontal。我尝试过将setorientation用于Vertical,但屏幕显示为空白。 以下代码是我想要做的一个例子:
LinearLayout layoutContainer = new LinearLayout(this);
layoutContainer.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
//layoutContainer.setOrientation(LinearLayout.VERTICAL);
// Arguments here: width, height, weight
LinearLayout.LayoutParams childLp = new LinearLayout.LayoutParams(0,
LayoutParams.FILL_PARENT, 1);
layoutTop = new RelativeLayout(this);
layoutContainer.addView(layoutTop, childLp);
layoutBot = new RelativeLayout(this);
layoutContainer.addView(layoutBot, childLp);
layoutTop.setBackgroundColor(GREEN);
layoutBot.setBackgroundColor(Color.BLUE);
setContentView(layoutContainer);
答案 0 :(得分:0)
看起来linearlayout初始化默认为Horizontal。
这是完全正确的。
我尝试过将setorientation用于Vertical,但屏幕显示为空白。
您需要将orientation
设置为vertical
才能获得此效果。至于它“空出”,我看到一些错误,例如将width
设置为“0”。没有width
因此它不会显示任何内容。我想你会想要像LinearLayout.WRAP_CONTENT
这样的东西。此外,您对LinearLayout
使用params
RelativeLayout
,这可能会也可能不会对此案件产生影响。
如果没有必要的理由在Java中创建layout
,那么在xml中执行此操作要容易得多。
答案 1 :(得分:0)
我认为您通过尝试以编程方式操作它们使您的布局变得复杂。将方向设置为Vertical
并执行以下操作:
<LinearLayout
------
------
android:orientation="vertical">
您的第一个相对布局
<RelativeLayout
android:id="@+id/rel1"
android:layout_alignParentTop="true"
----------------------
---------------------
/>
您的下一个相对布局
<RelativeLayout
android:id="@+id/rel2"
android:layout_below="@id/rel1"
----------------------
---------------------
/>