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>

このような構造を使用すると、説明したレイアウトを構築できます。

動的行の場合、次のことができます。

layout_row.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 に答える