我正在制作一个自定义拨号器,并希望所有按钮的大小相同,但是因为某些文本比其他按钮长(例如" 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>
答案 0 :(得分:3)
试试这个:
如果您不想填满整个屏幕,请移除主要weightSum
的{{1}}和TableRows中相应的TableLayout
layout_weight
这应该有效
答案 1 :(得分:1)
使用线性布局代替表格布局,并为所有按钮设置权重= 1。它会给你你想要的积极结果..
答案 2 :(得分:0)
<TableLayout
android:id="@+id/tableView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="*"
xmlns:android="http://schemas.android.com/apk/res/android">
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:soundEffectsEnabled="false"
android:textSize="20sp"
android:text="dialer_one" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:soundEffectsEnabled="false"
android:textSize="20sp"
android:text="dialer_two" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:soundEffectsEnabled="false"
android:textSize="20sp"
android:text="dialer_three" />
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:soundEffectsEnabled="false"
android:textSize="20sp"
android:text="dialer_four" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:soundEffectsEnabled="false"
android:textSize="20sp"
android:text="dialer_five" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:soundEffectsEnabled="false"
android:textSize="20sp"
android:text="dialer_six" />
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:soundEffectsEnabled="false"
android:textSize="20sp"
android:text="dialer_seven" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:soundEffectsEnabled="false"
android:textSize="20sp"
android:text="dialer_eight" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:soundEffectsEnabled="false"
android:textSize="20sp"
android:text="dialer_nine" />
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:soundEffectsEnabled="false"
android:textSize="20sp"
android:text="dialer_star" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:soundEffectsEnabled="false"
android:textSize="20sp"
android:text="dialer_zero" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:soundEffectsEnabled="false"
android:textSize="20sp"
android:text="dialer_pound" />
</TableRow>
我认为这就是你想要的......
答案 3 :(得分: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>
答案 4 :(得分:0)
事实证明,按钮的大小各不相同,因为我的按钮文字周围的默认填充太高了。