【发布时间】:2016-10-11 20:00:52
【问题描述】:
这是每个Button 具有相同大小文本时的布局:
这是我增加右下角Button的文字大小时的布局:
这里发生了什么?为什么Button的“0”移动低于相邻的两个Buttons?
这是布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@android:color/white"
android:orientation="vertical"
android:padding="6dp">
<TextView
android:id="@+id/input_textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColorHint="@color/hint_color"
android:singleLine="true"
android:textSize="40sp"/>
<GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnCount="3">
<Button
android:id="@+id/the_1_button"
android:background="@android:color/white"
android:text="1"/>
<Button
android:id="@+id/the_2_button"
android:background="@android:color/white"
android:text="2"/>
<Button
android:id="@+id/the_3_button"
android:background="@android:color/white"
android:text="3"/>
<Button
android:id="@+id/the_4_button"
android:background="@android:color/white"
android:text="4"/>
<Button
android:id="@+id/the_5_button"
android:background="@android:color/white"
android:text="5"/>
<Button
android:id="@+id/the_6_button"
android:background="@android:color/white"
android:text="6"/>
<Button
android:id="@+id/the_7_button"
android:background="@android:color/white"
android:text="7"/>
<Button
android:id="@+id/the_8_button"
android:background="@android:color/white"
android:text="8"/>
<Button
android:id="@+id/the_9_button"
android:background="@android:color/white"
android:text="9"/>
<ImageButton
android:id="@+id/the_backspace_button"
style="@style/Widget.AppCompat.Button"
android:background="@android:color/white"
android:src="@drawable/ic_backspace"/>
<Button
android:id="@+id/the_0_button"
android:background="@android:color/white"
android:text="0"/>
<Button
android:id="@+id/the_done_button"
android:layout_width="88dp"
android:layout_height="48dp"
android:minWidth="0dp"
android:minHeight="0dp"
android:background="@android:color/white"
android:text="done"/>
</GridLayout>
</LinearLayout>
更新:
我将“DONE”Button 的文本设置为超大——100sp——并将maxWidth 和maxHeight 设置为等于另一个Buttons 的高度和宽度。结果如下:
*蓝色是GridLayout的背景,红色是“0”Button's,黄色是“DONE”Button's
如果Button 的大小从不改变,为什么更改“完成”按钮的文本大小会影响特定Button 以外的任何内容?
【问题讨论】:
-
我无法回答您的具体问题,但在
android:id="@+id/the_0_button"上设置android:layout_gravity="top"应该会移动Button。您应该仔细阅读源代码,看看GridLayout是如何测量和布置其子级的。 -
@Vikram 试过了。没用。