2列TableLayout,每列精确到50%

自从我第一次使用Android以来,这个问题让我感到困惑。 我无法将两列的TableLayout中的两列精确地分别设置为50%。

这是一个例子:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="fill_parent" > <TableLayout android:id="@+id/tablelayout" android:layout_height="wrap_content" android:layout_width="fill_parent" android:paddingRight="2dip" > <TableRow> <TextView style="@style/TextViewStandard" android_layout_span="2" android:layout_weight="1" android:text="Bla" /> </TableRow> <TableRow> <TextView style="@style/TextViewStandard" android:layout_weight="1" android:text="Name:" /> <EditText style="@style/EditTextStandard" android:id="@+id/et_name" android:layout_weight="1" /> </TableRow> <TableRow> <TextView style="@style/TextViewStandard" android:layout_weight="1" android:text="URL:" /> <EditText style="@style/EditTextStandard" android:id="@+id/et_url" android:layout_weight="1" /> </TableRow> <TableRow> <Button style="@style/ButtonStandard" android:layout_column="0" android:layout_marginTop="6dip" android:onClick="onClickOk" android:text="@android:string/ok" /> </TableRow> </TableLayout> </ScrollView> 

这里是相应的样式定义:

 <resources> <style name="ButtonStandard" parent="@android:style/Widget.Button"> <item name="android:layout_height">wrap_content</item> <item name="android:layout_width">fill_parent</item> </style> <style name="EditTextStandard" parent="@android:style/Widget.EditText"> <item name="android:layout_height">wrap_content</item> <item name="android:layout_marginLeft">2dip</item> <item name="android:layout_marginRight">2dip</item> <item name="android:layout_marginTop">2dip</item> <item name="android:layout_width">fill_parent</item> </style> <style name="TextViewStandard" parent="@android:style/Widget.TextView"> <item name="android:layout_height">wrap_content</item> <item name="android:layout_marginLeft">2dip</item> <item name="android:layout_marginRight">2dip</item> <item name="android:layout_marginTop">2dip</item> <item name="android:layout_width">fill_parent</item> <item name="android:textColor">@android:color/white</item> </style> </resources> 

这变得真的搞砸了涉及的CheckBox。

我的定义有什么问题?

提前谢谢了。 HJW

Solutions Collecting From Web of "2列TableLayout,每列精确到50%"

你有没有试图将android:layout_width属性设置为0dp (当然,保持android:layout_weight1 )在子视图上?

当我也想在两个孩子的观点之间平均地分配给定的空间时,我也曾经有过类似的情况,但是因为“内容更广泛”的孩子在其父母之中也比兄弟姐妹更宽。 这是因为更广泛的孩子有更大的初始宽度。 确保两个孩子都从相同的宽度(两个都是android:layout_width="0dp" )开始,也保证在他们之间均匀地分配空间。

这就是我平均格式化表格的方式。 不是你的问题的一部分,而是在其他不包含android:layout_column属性的TableRow子项上覆盖所有列android:layout_span =“2”。 希望这可以帮助。

 <TableLayout android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="0,1"> <TableRow android:id="@+id/tableRow1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/textView1" android:layout_column="0"> </TextView> <TextView android:id="@+id/textView2" android:layout_column="1"> </TextView> </TableRow> </TableLayout> 

我会创build一个表格布局在持有您的控件的框架布局。 在这个例子中,我有两列的布局,我把两个ImageView的居中在每一列。

  <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1"> <TableRow> <FrameLayout android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight="1"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/button_wedding_day_cheat_sheet" android:id="@+id/buttonWeddingDayCheatSheet" android:onClick="onClickWeddingDayCheatSheet" android:layout_gravity="center_horizontal"> </ImageView> </FrameLayout> <FrameLayout android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight="1"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/button_share_favorite_recipe" android:id="@+id/buttonShareFavoriteRecipe" android:onClick="onClickShareFavoriteRecipe" android:layout_gravity="center_horizontal"> </ImageView> </FrameLayout> </TableRow> </TableLayout> 

在android表中的列总是调整到最宽的视图,在任何一行。 这里没有明确的控制列。 网格视图有更多的控制列大小,如:android:columnWidth =“100dp”

如果表中的左视图和右视图的大小设置相同,那么居中的表格可以有两个50%间距的列。