我试图为android创建一个简单的计算应用程序。我使用了表格布局并添加了4行和4列。在每列中我添加一个按钮。我的问题是第4栏切出,如下图所示,
以下是我的代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.tashtoons.calculator.Calculator">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:weightSum="1"
android:layout_alignParentRight="false"
android:layout_alignParentEnd="false">
<TextView
android:layout_width="343dp"
android:layout_height="77dp"
android:id="@+id/answerScreen"
android:layout_gravity="center_horizontal" />
<TableLayout
android:layout_width="371dp"
android:shrinkColumns="1"
android:layout_height="match_parent"
android:baselineAligned="true">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:text="1"
android:id="@+id/button"
android:layout_column="0"
android:width="5px" />
<Button
android:text="2"
android:id="@+id/button2"
android:layout_column="1"
android:width="5px" />
<Button
android:text="3"
android:id="@+id/button3"
android:layout_column="2"
android:width="5px" />
<Button
android:text="+"
android:id="@+id/button4"
android:layout_column="3"
android:width="5px" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:text="4"
android:id="@+id/button5"
android:layout_column="0"
android:width="5px" />
<Button
android:text="4"
android:id="@+id/button6"
android:layout_column="1"
android:width="5px" />
<Button
android:text="5"
android:id="@+id/button7"
android:layout_column="2"
android:width="5px" />
<Button
android:text="-"
android:id="@+id/button8"
android:layout_column="3"
android:width="5px" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:text="6"
android:id="@+id/button9"
android:layout_column="0"
android:width="5px" />
<Button
android:text="7"
android:id="@+id/button10"
android:layout_column="1"
android:width="5px" />
<Button
android:text="8"
android:id="@+id/button11"
android:layout_column="2"
android:width="5px" />
<Button
android:text="X"
android:id="@+id/button12"
android:layout_column="3"
android:width="5px" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:text="9"
android:id="@+id/button13"
android:layout_column="0"
android:width="5px" />
<Button
android:text="0"
android:id="@+id/button14"
android:layout_column="1"
android:width="5px" />
<Button
android:text="%"
android:id="@+id/button15"
android:layout_column="2"
android:width="5px" />
<Button
android:text="/"
android:id="@+id/button16"
android:layout_column="3"
android:width="5px" />
</TableRow>
</TableLayout>
</LinearLayout>
</RelativeLayout>
如何阻止它切断?
答案 0 :(得分:1)
代替您的代码使用下面的代码。
每当您必须提供所有same width
或Button
等TextView
时
LinearLayout
的属性为WeightSum
。这可以等于分割部分。
所以将xml代码更改为以下格式。
xml代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.softeng.xxy.ThirdActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:id="@+id/firstRow">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="4">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/secondRow"
android:layout_below="@+id/firstRow">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="4">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/thirdRow"
android:layout_below="@+id/secondRow">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="4">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="8" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="X" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/forthRow"
android:layout_below="@+id/thirdRow">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="4">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="9" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="%" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="/" />
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
输出
答案 1 :(得分:0)
试试这可能会对你有所帮助
使用
android:layout_width="match_parent"
在TableLayout
而不是
android:layout_width="371dp"
答案 2 :(得分:0)
如果视图的权重= 1,则应将layout_width设置为0dp,以使其在屏幕上具有均匀的数量或空间