私は動的レイアウトを使用しており、線形レイアウトでコンポーネントを追加しています。コンポーネントの数も動的です。
線形レイアウトの向きが水平の場合、アイテムは水平に追加され、垂直のアイテムは垂直に追加されます。
アイテムが垂直にいっぱいになったときのように、最初に水平に、次に垂直にアイテムを並べることができます。
または、私のニーズを満たすために他のレイアウトを使用できますか。
このような
私は動的レイアウトを使用しており、線形レイアウトでコンポーネントを追加しています。コンポーネントの数も動的です。
線形レイアウトの向きが水平の場合、アイテムは水平に追加され、垂直のアイテムは垂直に追加されます。
アイテムが垂直にいっぱいになったときのように、最初に水平に、次に垂直にアイテムを並べることができます。
または、私のニーズを満たすために他のレイアウトを使用できますか。
このような
複数の方向を持つネストされた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);
各行には、同じ種類のロジックを使用して作成する必要がある動的ビューをプログラムで追加できます。