1

次のように、互いに整列した 2by2 ボタンのグループを作成したいと考えています。

AB

CD

コンテンツの長さに関係なく、それぞれが同じ幅と高さを持ちます。

ネストされた LinearLayouts で次のセットアップを使用しようとしましたが、要件を満たしていますが、ネストされた layout_weight がパフォーマンスに大きな (指数関数的な) 影響を与えるという警告を受け取りました。

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:baselineAligned="false">

    <LinearLayout android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="50"
        android:orientation="vertical">

        <Button
            android:id="@+id/buttonA"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="50"
            android:text="aaa"/>

        <Button
            android:id="@+id/buttonC"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="50"
            android:text="cccccccccccccccccccccccccccc"/>
    </LinearLayout>

    <LinearLayout android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="50"
        android:orientation="vertical">

        <Button
            android:id="@+id/buttonB"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="50"
            android:text="bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" />

        <Button
            android:id="@+id/buttonD"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="50"
            android:text="ddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"/>
    </LinearLayout>
    </LinearLayout>

これを行うためのより良い方法があるのだろうか?ありがとうございました!

4

2 に答える 2

1

aLinearLayoutを 2 とともに使用し、それぞれに 2TableRowsを挿入します。必要に応じて割り当てます。を含む各項目に 1 を割り当てれば、準備完了です。ButtonsTableRowwidthheightweightTableRows

編集:少し遊んだ後、これがうまく機能していることがわかりました;-)

これは基本的にあなた自身のレイアウトと私のレイアウトの混合です;-)

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

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1" >

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="cccccccccccccccccccccccccccc" />

        <Button
            android:id="@+id/button2"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="Button" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1" >

        <Button
            android:id="@+id/button3"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" />

        <Button
            android:id="@+id/button4"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="ddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" />
    </TableRow>

</LinearLayout>
于 2013-04-10T17:55:41.247 に答える
0

私はそれをテストしていませんがbutton.getWidth()、4 つのボタンの幅を取得するために使用できます。4 つの最大値を見つけて、すべてのボタンをその幅に設定します。ボタンのコンテンツが動的になる場合。

于 2013-04-10T17:56:17.367 に答える