我的程序中有一个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>
答案 0 :(得分:2)
实际上,它们都具有相同的大小,但Button
使用图像作为背景,似乎它有一些边距。
要测试此项,请使用颜色覆盖按钮的背景,并查看它们的大小相同:
android:background="#0F0"
因此,解决方案是为您的按钮提供自定义背景,或调整TextView
以匹配按钮的宽度和高度,减去Button的边距,我不认为这是个人最佳方法。
答案 1 :(得分:1)
当我希望多个控件具有相同的大小时,我通常会将它们放在TableLayout中。
在你的情况下,我将一个TableLayout放在线性布局中,并将按钮和textview放在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>