0

画面に多数のボタンを続けて追加しようとしています。ボタンはTableLayoutで設定されます。私はこのように複数の場所を検索しました: Androidで画面サイズを計算して、すべてが1つの画面に収まるように複数のボタン(1〜9)のサイズを設定する方法を見つけようとしています。ボタンは次のように動的に作成されます。

    // put values into btn array
    for (int i = 0; i < row; i++) {
        tr = new TableRow(this);
        for (int j = 0; j < col; j++) {
            b = new Button(this);
            b.setOnClickListener(this);
            b.setText(bArray[j][i] + "");
            b.setTag(j + "," + i);
            tr.addView(b);
        }
        table.addView(tr);
    }

注:varsの行と列は同じ値(1から9までの数字)に設定されます。TableLayoutは、次のようにxmlのRelativeLayout内に設定されます。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<TableLayout
    android:id="@+id/tableLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true" >


</TableLayout>

編集:ボタンは水平に移動しています。

4

1 に答える 1

1

さて、あなたは多くの異なることをすることができます。あなたの質問からあなたが何をしようとしているのかを正確に伝えるのは難しいですが、私はいくつかのオプションを捨てます。(これらのボタンがどのように移動するかわからないので、垂直を想定しています)

  1. 簡単な方法は、高さを見つけてボタンの数で割ることです。の線に沿った何かb.setHeight(this.getHeight()/numButtons)

  2. ボタンの高さにコンテンツの折り返し属性を適用するだけです。これにより、必要最小限のスペースが必要になります。

  3. ScrollView高さをまったく気にする必要がないように、を使用してください。

  4. 最後に、各ボタンをmatch_parentに設定し、それぞれのボタンをlayout_weight等しく設定できます。 この方法をお勧めします。おそらく最も簡単でエラーが発生しにくいです。

#4のCarification

ボタンが水平になっている状態で、ボタンの幅をに設定し、を一定の数(たとえば、0.5)に設定しMATCH_PARENTますlayout_weight。これにより、すべてのボタンが同じ幅で親全体に展開されます。

于 2013-01-28T08:28:53.477 に答える