1

カスタムダイヤラーを作成していて、すべてのボタンを同じサイズにしたいのですが、一部のテキストが他のテキストよりも長いため (たとえば、「7」ボタンの下に「PQRS」がある)、一部の列が伸びます。これが私が現在行っていることですが、何が間違っていますか?

<TableLayout
    android:id="@+id/tableView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="*" >
    <TableRow
        android:layout_weight="1"
        android:gravity="center" >
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:soundEffectsEnabled="false"
            android:textSize="20sp"
            android:text="@string/dialer_one" />
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:soundEffectsEnabled="false"
            android:textSize="20sp"
            android:text="@string/dialer_two" />
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:soundEffectsEnabled="false"
            android:textSize="20sp"
            android:text="@string/dialer_three" />
    </TableRow>
    <TableRow
        android:layout_weight="1"
        android:gravity="center" >
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:soundEffectsEnabled="false"
            android:textSize="20sp"
            android:text="@string/dialer_four" />
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:soundEffectsEnabled="false"
            android:textSize="20sp"
            android:text="@string/dialer_five" />
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:soundEffectsEnabled="false"
            android:textSize="20sp"
            android:text="@string/dialer_six" />
    </TableRow>
    <TableRow
        android:layout_weight="1"
        android:gravity="center" >
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:soundEffectsEnabled="false"
            android:textSize="20sp"
            android:text="@string/dialer_seven" />
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:soundEffectsEnabled="false"
            android:textSize="20sp"
            android:text="@string/dialer_eight" />
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:soundEffectsEnabled="false"
            android:textSize="20sp"
            android:text="@string/dialer_nine" />
    </TableRow>
    <TableRow
        android:layout_weight="1"
        android:gravity="center" >
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:soundEffectsEnabled="false"
            android:textSize="20sp"
            android:text="@string/dialer_star" />
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:soundEffectsEnabled="false"
            android:textSize="20sp"
            android:text="@string/dialer_zero" />
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:soundEffectsEnabled="false"
            android:textSize="20sp"
            android:text="@string/dialer_pound" />
    </TableRow>
</TableLayout>
4

5 に答える 5

4

これを試してください:そして、画面全体を埋めたくない場合は、TableRowsweightSumのメインTableLayoutとそれぞれのを削除しますlayout_weight

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/tableView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="*"
    android:weightSum="4" >

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:weightSum="3" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:soundEffectsEnabled="false"
            android:text="dialer_one"
            android:textSize="20sp" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:soundEffectsEnabled="false"
            android:text="dialer_two"
            android:textSize="20sp" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:soundEffectsEnabled="false"
            android:text="dialer_three"
            android:textSize="20sp" />
    </TableRow>

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:weightSum="3" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:soundEffectsEnabled="false"
            android:gravity="center"
            android:text="dialer_four"
            android:textSize="20sp" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:soundEffectsEnabled="false"
            android:gravity="center"
            android:text="dialer_five"
            android:textSize="20sp" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:soundEffectsEnabled="false"
            android:gravity="center"
            android:text="dialer_six"
            android:textSize="20sp" />
    </TableRow>

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:weightSum="3" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:soundEffectsEnabled="false"
             android:gravity="center_vertical"
            android:text="dialer_seven"
            android:textSize="20sp" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:soundEffectsEnabled="false"
             android:gravity="center_vertical"
            android:text="dialer_eight"
            android:textSize="20sp" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:soundEffectsEnabled="false"
             android:gravity="center_vertical"
            android:text="dialer_nine"
            android:textSize="20sp" />
    </TableRow>

    <TableRow
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:weightSum="3" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:soundEffectsEnabled="false"
            android:layout_gravity="center_vertical"
            android:text="dialer_star"
            android:textSize="20sp" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:soundEffectsEnabled="false"
             android:layout_gravity="center_vertical"
            android:text="dialer_zero"
            android:textSize="20sp" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:soundEffectsEnabled="false"
             android:layout_gravity="center_vertical"
            android:text="dialer_pound"
            android:textSize="20sp" />
    </TableRow>

</TableLayout>

これはうまくいくはずです

于 2013-09-30T17:22:36.863 に答える
0

このようにすべてのボタンを同じ幅にするには、WeightSum と Weight を使用します。

 <TableRow
            android:layout_weight="1"
            android:gravity="center"
            android:weightSum="3" >

            <Button
                android:layout_weight="1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:soundEffectsEnabled="false"
                android:text="@string/dialer_one"
                android:textSize="20sp" />

            <Button
                android:layout_weight="1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:soundEffectsEnabled="false"
                android:text="@string/dialer_two"
                android:textSize="20sp" />

            <Button
                android:layout_weight="1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:soundEffectsEnabled="false"
                android:text="@string/dialer_three"
                android:textSize="20sp" />
        </TableRow>
于 2013-09-30T16:57:30.683 に答える