我的主要活动Android .xml表布局是一个简单的图像表,3列乘4行。一切都设置为match_parent宽度,高度和重量1,这在GUI编辑器中略有错误,但在我的手机上没问题。
如果我然后在底行之前的.xml中添加一行来添加文本标签,它或者根本不渲染行,或者在稍微戳之后渲染文本但是切断底部的最后一行。
以下是.xml,长篇大论,但非常简单和重复。
<TableLayout
android:layout_gravity="bottom"
android:layout_weight="1"
android:stretchColumns="*"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_alignParentBottom="true"
android1:layout_alignParentLeft="true"
android1:layout_alignParentRight="true"
android1:layout_alignParentTop="true" >
<TableRow
android1:id="@+id/tableRow1"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1" >
<ImageView
android1:id="@+id/x2"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1"
android1:clickable="true"
android1:onClick="SetTable"
android1:padding="5dp"
android1:scaleType="fitCenter"
android1:src="@drawable/menu_2x"
android1:tag="2" />
<ImageView
android1:id="@+id/x3"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1"
android1:onClick="SetTable"
android1:padding="5dp"
android1:scaleType="fitCenter"
android1:src="@drawable/menu_3x"
android1:tag="3" />
<ImageView
android1:id="@+id/x4"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1"
android1:onClick="SetTable"
android1:padding="5dp"
android1:scaleType="fitCenter"
android1:src="@drawable/menu_4x"
android1:tag="4" />
</TableRow>
<TableRow
android1:id="@+id/tableRow3"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1" >
<ImageView
android1:id="@+id/x5"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1"
android1:onClick="SetTable"
android1:padding="5dp"
android1:scaleType="fitCenter"
android1:src="@drawable/menu_5x"
android1:tag="5" />
<ImageView
android1:id="@+id/x6"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1"
android1:onClick="SetTable"
android1:padding="5dp"
android1:scaleType="fitCenter"
android1:src="@drawable/menu_6x"
android1:tag="6" />
<ImageView
android1:id="@+id/x7"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1"
android1:onClick="SetTable"
android1:padding="5dp"
android1:scaleType="fitCenter"
android1:src="@drawable/menu_7x"
android1:tag="7" />
</TableRow>
<TableRow
android1:id="@+id/tableRow4"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1" >
<ImageView
android1:id="@+id/x8"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1"
android1:onClick="SetTable"
android1:padding="5dp"
android1:scaleType="fitCenter"
android1:src="@drawable/menu_8x"
android1:tag="8" />
<ImageView
android1:id="@+id/x9"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1"
android1:onClick="SetTable"
android1:padding="5dp"
android1:scaleType="fitCenter"
android1:src="@drawable/menu_9x"
android1:tag="9" />
<ImageView
android1:id="@+id/x10"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1"
android1:onClick="SetTable"
android1:padding="5dp"
android1:scaleType="fitCenter"
android1:src="@drawable/menu_10x"
android1:tag="10" />
</TableRow>
<TableRow
android1:id="@+id/TableRow01"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1" >
<TextView
android1:id="@+id/TextView02"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_span="2"
android1:layout_weight="1"
android1:text="Left two buttons"
android1:textColor="#000000"
android1:textSize="16dp"
android1:textStyle="normal" />
<TextView
android1:id="@+id/textView1"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1"
android1:text="Right button"
android1:textColor="#000000"
android1:textSize="16dp"
android1:textStyle="normal" />
</TableRow>
<TableRow
android1:id="@+id/TableRow5"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1" >
<ImageView
android1:id="@+id/ImageView07"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1"
android1:onClick="LaunchPR"
android1:scaleType="fitCenter"
android1:src="@drawable/pushbutton_1"
android1:tag="1" />
<ImageView
android1:id="@+id/ImageView08"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1"
android1:onClick="LaunchPR"
android1:scaleType="fitCenter"
android1:src="@drawable/pushbutton_1"
android1:tag="2" />
<ImageView
android1:id="@+id/ImageView09"
android1:layout_width="match_parent"
android1:layout_height="match_parent"
android1:layout_weight="1"
android1:onClick="LaunchPR"
android1:scaleType="fitCenter"
android1:src="@drawable/pushbutton_2"
android1:tag="3" />
</TableRow>
</TableLayout>
答案 0 :(得分:0)
如果您将TableLayout
设置为填充父级(match_parent
),则不需要layout_weight
属性。如果您计划让layout_weight
垂直占据相等的空间(例如,如果您有4行,那么您需要使用TableRows
(在TableRows
上)在android:weightSum="4"
上设置TableLayout
,在android:layout_weight="1"
设置TableRows
以设置四个大小相同的垂直行(填充屏幕)。)
此外,android:stretchColumns="*"
属性会拉伸所有表格的列,因此您不需要TableRow
的子项上的layout_weight。