0

我有一个动态布局,并在线性布局中添加组件。组件的数量也是动态的。

当线性布局方向为水平时,项目将水平添加,而垂直项目则垂直添加。

现在我可以先水平平铺项目,然后垂直平铺项目,就像垂直填充项目一样。

或者我可以使用任何其他布局来满足我的需要。

像这样在此处输入图像描述

4

1 回答 1

1

您绝对可以LinearLayout拥有多个方向的嵌套元素。例如:

<LinearLayout 
    android:id="@+id/main_layout"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/firstRow"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="horizontal" >
        ...
    </LinearLayout>

    <LinearLayout
        android:id="@+id/secondRow"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="horizontal" >
        ...
    </LinearLayout>

    <LinearLayout
        android:id="@+id/thirdRow"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="horizontal" >
        ...
    </LinearLayout>
</LinearLayout>

使用这样的结构将允许您构建您描述的布局。

对于动态行,您可以执行以下操作:

布局行.xml

<LinearLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:orientation="horizontal" />

MainActivity.java

mainLayout = (LinearLayout) findViewById(R.id.main_layout);

// for each dynamic row you can inflate a new view and add it
dynamicRow1 = getLayoutInflater.inflate(R.layout.layout_row, null);
mainLayout.addView(dynamicRow1);

dynamicRow2 = getLayoutInflater.inflate(R.layout.layout_row, null);
mainLayout.addView(dynamicRow2);

dynamicRow3 = getLayoutInflater.inflate(R.layout.layout_row, null);
mainLayout.addView(dynamicRow3);

在每一行中,您可以使用相同类型的逻辑以编程方式添加需要创建的动态视图。

于 2012-09-05T21:06:00.200 回答