0

プログラムにTextViewとButtonがあり、ButtonとTextViewのサイズを同じにすることができません。これどうやってするの?

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="67dp"
        android:background="#999999" 
        android:gravity="center" 
        >
        <Button
            android:id="@+id/button1"
            android:layout_width="130dp"
            android:layout_height="60dp"
            android:text="Button" />
        <TextView
            android:id="@+id/textView1"
            android:layout_width="130dp"
            android:layout_height="60dp"
            android:background="#ffffff" android:textColor="#000000"
            android:textSize="24dp" android:textStyle="bold"
            android:gravity="center"
            android:text="0.0" />
    </LinearLayout>
4

2 に答える 2

2

実はどちらも同じサイズですが、Button背景に画像を使用しており、余白があるようです。

これをテストするには、ボタンの背景を色で上書きして、同じサイズであることを確認します。

android:background="#0F0"

したがって、解決策は、ボタンにカスタムの背景を提供するかTextView、ボタンの幅と高さからボタンの余白を差し引いたものに一致するように調整することです。これは、個人的には最善のアプローチではないと思います。

于 2012-08-24T14:42:40.513 に答える
1

複数のコントロールを同じサイズにしたい場合、私が通常行うことは、それらをTableLayoutに配置することです。

あなたの場合、線形レイアウト内にTableLayoutを配置し、TableRow内にボタンとテキストビューを配置し、TableRowの重みの合計を2に設定し、個々のコントロールの重みを1に設定します。

これにより、コントロールが画面上で同じ量のスペースを占めるようになります。サンプルxmlを以下に示します。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >



        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:weightSum="2" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="@string/hello_world">

            <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Button" />
        </TableRow>

    </TableLayout>

</LinearLayout>
于 2012-08-24T15:17:11.127 に答える