1

ボタンが伸びて残りの空きスペースを垂直に埋めるような方法で、2番目の線形レイアウトを使用できると言われました. ここからどこへ行けばいいのかわからない。どんな助けでも大歓迎です。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="vertical" >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="horizontal" >
<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:gravity="center">
    <TableRow>
        <Button
            android:id="@+id/one"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="fill_vertical"
            android:layout_weight="1"
            android:gravity="center"
            android:text="1" />
        <Button
            android:id="@+id/two"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="2" />
    </TableRow>
    <TableRow>
        <Button
            android:id="@+id/three"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="fill_vertical"
            android:layout_weight="1"
            android:gravity="center"
            android:text="3" />
        <Button
            android:id="@+id/four"
            android:text="4"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:layout_weight="1" />
    </TableRow>
    <TableRow>
        <Button
            android:id="@+id/five"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="5" />
        <Button
            android:id="@+id/six"
            android:text="6"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:layout_weight="1" />
    </TableRow>
</TableLayout>
</LinearLayout>
</LinearLayout>
4

2 に答える 2

3

ボタンが画面上の利用可能な高さを埋めたいと思っていると思います。その場合は、こちらの回答をご覧くださいAndroid TableLayout の高さが画面全体を埋めません

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="vertical" >

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center" >

        <TableRow
            android:layout_height="0dp"
            android:layout_weight="1" >

            <Button
                android:id="@+id/one"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:text="1" />

            <Button
                android:id="@+id/two"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:text="2" />
        </TableRow>

        <TableRow
            android:layout_height="0dp"
            android:layout_weight="1" >

            <Button
                android:id="@+id/three"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:text="3" />

            <Button
                android:id="@+id/four"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:text="4" />
        </TableRow>

        <TableRow
            android:layout_height="0dp"
            android:layout_weight="1" >

            <Button
                android:id="@+id/five"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:text="5" />

            <Button
                android:id="@+id/six"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:text="6" />
        </TableRow>
    </TableLayout>

</LinearLayout>

テーブルの行が次のようになっていることに注意してください

 android:layout_height="0dp"
 android:layout_weight="1"

これにより、行を拡張して残りのスペースを埋めることができます (各行は画面の高さの 1/3 になります)。

また、重みを使用しているため、ボタンのレイアウト幅を 0dp に変更しました。xmlns:android="http://schemas.android.com/apk/res/android"また、 3回は必要ありません 。親レイアウトでのみ必要です。

最後に、多くのボタンが同じスタイルを使用しています。これらのボタンにスタイルを使用することを検討することをお勧めします。スタイル/テーマの詳細については、http://developer.android.com/guide/topics/ui/themes.htmlを参照してください。

于 2013-07-26T01:43:12.407 に答える
2

あなたが探している関数は android:weightSum だと思います。公式リファレンスは次のとおりです。 http://developer.android.com/reference/android/widget/LinearLayout.html#attr_android:weightSum

したがって、テーブル レイアウトを全画面表示に拡張するには、3 の weightSum を TableLayout に割り当て、1 の android:layout_weight を各 TableRow に分割する必要があります。それはあなたに望ましい結果を与えるでしょう。

したがって、xml レイアウト ファイルは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="vertical" >
<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="horizontal" >
<TableLayout

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:weightSum="3"
    android:gravity="center">
    <TableRow
        android:layout_weight="1">
        <Button
            android:id="@+id/one"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="fill_vertical"
            android:layout_weight="1"
            android:gravity="center"
            android:text="1" />
        <Button
            android:id="@+id/two"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="2" />
</TableRow>
<TableRow
    android:layout_weight="1">
    <Button
        android:id="@+id/three"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1"
        android:gravity="center"
        android:text="3" />
    <Button
        android:id="@+id/four"
        android:text="4"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:layout_weight="1" />
</TableRow>
<TableRow
    android:layout_weight="1">
    <Button
        android:id="@+id/five"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:text="5" />
    <Button
        android:id="@+id/six"
        android:text="6"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:layout_weight="1" />
</TableRow>
</TableLayout>
</LinearLayout>
</LinearLayout>
于 2013-07-26T01:26:40.587 に答える