Android 相对视图中的按钮 - 让按钮填充可用宽度
Android buttons in relative view - Have buttons fill available width
我在类似 3 x 3 计算器的配置中有 9 个按钮,标记为 1 到 9。这些都包含在一个相对视图中。我想让按钮变得比它们需要的更宽,并填充相关视图的可用宽度。相对视图设置为填充父视图。我还想在按钮之间至少留一个小间隙,这样它们就不会接触。解决这个问题的最佳方法是什么?
<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" />
谢谢,
大卫
这就是您的布局方式,
并且还为所有按钮设置 margin
,使它们之间有一些 space。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal">
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal">
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal">
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>
我在类似 3 x 3 计算器的配置中有 9 个按钮,标记为 1 到 9。这些都包含在一个相对视图中。我想让按钮变得比它们需要的更宽,并填充相关视图的可用宽度。相对视图设置为填充父视图。我还想在按钮之间至少留一个小间隙,这样它们就不会接触。解决这个问题的最佳方法是什么?
<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" />
谢谢,
大卫
这就是您的布局方式,
并且还为所有按钮设置 margin
,使它们之间有一些 space。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal">
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal">
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal">
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<Button
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>