0

画面の下部を埋めるようにスケーリングされた 3 つのボタンを持つテーブル レイアウトがあります。これらのボタンをスクロールビューに置き換えて、より多くのボタンに合わせたいと思います。スクロールビューを追加してボタンを追加しましたが、幅が幅の 1/4、ボタン 4 つ分に縮小されました。スクロールビューは正常に機能しますが、スクロールビューまたはボタンを拡大縮小することはできません。また、より大きなディスプレイでは、ボタンは拡大縮小された場所で小さいままです。

ここに私の行コードがあります:

    <TableRow
        android:id="@+id/TableRow5"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <HorizontalScrollView
            android:id="@+id/horizontalScrollView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_span="3"
            android:layout_weight="1"
            >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="horizontal"
                android:weightSum="6" >

                <Button
                    android:id="@+id/button_low"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_margin="5dp"
                    android:layout_weight="1"
                    android:background="@drawable/sgbutton"
                    android:onClick="preLaunch"
                    android:padding="5dp"
                    android:tag="1"
                    android:text="@string/button_label_low"
                    android:textSize="16dp"
                    android:textStyle="normal" />

                <Button
                    android:id="@+id/button_high"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_margin="5dp"
                    android:layout_weight="1"
                    android:background="@drawable/sgbutton"
                    android:onClick="preLaunch"
                    android:padding="5dp"
                    android:tag="2"
                    android:text="@string/button_label_high"
                    android:textSize="16dp"
                    android:textStyle="normal" />

                <Button
                    android:id="@+id/button_practice"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_margin="5dp"
                    android:layout_weight="1"
                    android:background="@drawable/sgbutton"
                    android:onClick="preLaunch"
                    android:padding="5dp"
                    android:tag="3"
                    android:text="practice"
                    android:textSize="16dp"
                    android:textStyle="normal" />

            <Button
                android:id="@+id/Button012"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/sgbutton"
                android:padding="5dp"
                android:tag="1"
                android:text="@string/button_label_low"
                android:textSize="16dp"
                android:textStyle="normal" />

            <Button
                android:id="@+id/Button011"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/sgbutton"
                android:padding="5dp"
                android:tag="2"
                android:text="@string/button_label_high"
                android:textSize="16dp"
                android:textStyle="normal" />

            <Button
                android:id="@+id/Button013"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/sgbutton"
                android:padding="5dp"
                android:tag="3"
                android:text="practice"
                android:textSize="16dp"
                android:textStyle="normal" />
            </LinearLayout>
        </HorizontalScrollView>
    </TableRow>

ボタンを表示幅の 1/3 に拡大するにはどうすればよいですか?

4

1 に答える 1

0

説明するのは少し難しいです。

子ビューを測定する場合、LinearLayout はまず、子ビューの大きさに応じてスペースを子に分割し、次にその重みに応じて残りのスペースを分割しようとします。

スペースを分割する前に、親 LinearLayout はその幅を知っている必要があります。ただし、Horizo​​ntalScrollView では、LinearLayout はそれがどのくらいの大きさであるべきかを認識していないため、最初に子ビューを測定して合計サイズを取得する必要があります。この状況では、残りのスペースがないため、ウェイトは機能しません。LinearLayout の幅は、ボタンの幅の合計に等しくなります。

コードで幅を設定する必要があると思います。各ボタンの幅を screenWidth / 3 に設定します。

于 2012-12-14T15:08:41.807 に答える