0

垂直の LinearLayout (緑の四角形)があり、この LinearLayout に複数の TableLayouts (赤の四角形)をプログラムで膨張させて挿入しようとしています。各テーブルレイアウトには、2x2 配置の 4 つのセルが含まれています。

ここに画像の説明を入力

TableLayout に設定した layout_marginBottom が無効であることを除いて、動作します。赤い四角形は常に LinearLayout 内に密集しています。各テーブルの間に垂直方向のスペースを作成したいと思います。

XML の何が問題なのか教えてください:

LinearLayout:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:orientation="vertical">
    <LinearLayout
        android:id="@+id/levellist"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:orientation="vertical">

    </LinearLayout>
</ScrollView>

TableLayout (動的に挿入)。効果のない layout_marginBottom に注意してください。

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tableLayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="100dp"
    android:stretchColumns="*" >

    <TableRow
        android:id="@+id/TableRow01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <include
            android:id="@+id/levelview0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            layout="@layout/levelmenu_level" />

        <include
            android:id="@+id/levelview1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            layout="@layout/levelmenu_level" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <include
            android:id="@+id/levelview2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            layout="@layout/levelmenu_level" />

        <include
            android:id="@+id/levelview3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            layout="@layout/levelmenu_level" />
    </TableRow>

</TableLayout>
4

1 に答える 1

0

この TableLayout には同じビューがたくさんあります。GridLayout を使用することをお勧めします。メモリ管理とリサイクルに役立つはずです。しかし、あなたの質問に答えるために、各行ではなくテーブル全体のマージンを設定しているようです。行タグ内に layout_margin を入れてみましたか? 代わりにパディングを設定することもできますか? そうすれば、行の内側にスペースを入れることができます。ただし、どちらの方法でも同じ効果が得られるはずです。マージンはビューの外側にあり、パディングは内側にあります。

http://developer.android.com/reference/android/view/View.html#attr_android:paddingBottom

<TableRow
        android:id="@+id/TableRow01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="???dip">

        <include
            android:id="@+id/levelview0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            layout="@layout/levelmenu_level" />
于 2012-07-22T18:19:38.513 に答える