0
我有一个3到3个计算器(如配置)中标记为1到9的9个按钮。这些都包含在相对视图中。我希望按钮的宽度比需要的宽度更宽,并填充相对视图的可用宽度。相对视图设置为填充父项。我还想在按钮之间至少留下一个小间隙,以免它们碰触到。解决这个问题的最好方法是什么?在相对视图中的Android按钮 - 有按钮填充可用宽度
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn0"
android:id="@+id/btn0"
android:layout_above="@+id/btnStart"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:onClick="btnNumber_Click"
android:tag="0" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn1"
android:id="@+id/btn1"
android:layout_above="@+id/btn0"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:tag="1"
android:onClick="btnNumber_Click" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn2"
android:id="@+id/btn2"
android:tag="2"
android:onClick="btnNumber_Click"
android:layout_above="@+id/btnNegative"
android:layout_alignLeft="@+id/btnNegative"
android:layout_alignStart="@+id/btnNegative" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn3"
android:id="@+id/btn3"
android:layout_above="@+id/btn0"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:tag="3"
android:onClick="btnNumber_Click" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn4"
android:id="@+id/btn4"
android:layout_above="@+id/btn1"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:tag="4"
android:onClick="btnNumber_Click" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn5"
android:id="@+id/btn5"
android:tag="5"
android:onClick="btnNumber_Click"
android:layout_below="@+id/btn8"
android:layout_alignLeft="@+id/btn2"
android:layout_alignStart="@+id/btn2" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn6"
android:id="@+id/btn6"
android:layout_alignBottom="@+id/btn5"
android:layout_alignLeft="@+id/btn3"
android:layout_alignStart="@+id/btn3"
android:tag="6"
android:onClick="btnNumber_Click" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn7"
android:id="@+id/btn7"
android:layout_above="@+id/btn4"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:tag="7"
android:onClick="btnNumber_Click" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn8"
android:id="@+id/btn8"
android:tag="8"
android:onClick="btnNumber_Click"
android:layout_alignTop="@+id/btn7"
android:layout_alignLeft="@+id/btn5"
android:layout_alignStart="@+id/btn5" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn9"
android:id="@+id/btn9"
android:layout_alignTop="@+id/btn8"
android:layout_alignLeft="@+id/btn6"
android:layout_alignStart="@+id/btn6"
android:tag="9"
android:onClick="btnNumber_Click" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnEnter"
android:id="@+id/btnEnter"
android:layout_alignTop="@+id/btn0"
android:layout_alignRight="@+id/btn3"
android:layout_alignEnd="@+id/btn3"
android:onClick="btnEnter_Click"
android:layout_alignLeft="@+id/btn3"
android:layout_alignStart="@+id/btn3"
android:singleLine="false" />
感谢,
大卫
如果您希望它们填满屏幕并在宽度上平均增长,最好的答案是每行都有一个LinearLayout,因此您可以给它们相同的权重。相对布局没有匹配的概念。 – 2015-03-08 20:12:34
谢谢Gabe。所以我只需在相对布局中为每一行按钮放置1个线性布局?那么因为我有3列,我会为每列分配33%的权重? – 2015-03-08 20:16:13
是的。技巧的另一部分是你需要给这些按钮一个0dp的layout_width,并加上一个重量。这告诉系统根据权重确定它们的大小,填充父级中的所有可用空间。该行的线性布局应设置为match_parent宽度。 – 2015-03-08 20:18:44