0

我有一个线性布局作为两个相对布局的容器。两个相对布局都出现在屏幕上,但它们是并排的。我希望它们处于顶部和底部。看起来好像线性布局初始化默认为水平。我尝试使用 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);
4

2 回答 2

0

看起来好像线性布局初始化默认为水平。

这是完全正确的。

我尝试使用 setorientation 到 Vertical 但屏幕空白。

您确实需要设置orientationvertical以获得此效果。至于它“空白”,我看到了一些错误,例如将其设置width为“0”。没有width所以它不会显示任何东西。我想你会想要类似的东西LinearLayout.WRAP_CONTENT。此外,在这种情况下,您使用LinearLayout paramsRelativeLayout可能会或可能不会有所作为。

如果没有必要的理由layout在 Java 中创建它,那么在 xml 中执行此操作要容易得多。

于 2013-08-28T23:23:52.400 回答
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"
    ----------------------
    ---------------------
                      />
于 2013-08-28T23:30:41.633 回答