具有相同行高的表布局

我创build了一个TableLayout,我希望每一行都有相同的高度,而不pipe它的内容如何。 我怎样才能做到这一点?

这是我的代码。 每行元素的宽度相同,但高度不相等。 我究竟做错了什么?

<TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@color/grey" android:padding="1dip" > <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:background="@color/grey" > <LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:background="@color/white" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_vertical" android:layout_marginBottom="5dip" android:layout_marginTop="2dip" android:layout_weight="1" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_make" android:textStyle="bold" /> <TextView android:id="@+id/carMake" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_vertical" android:layout_marginLeft="1dip" android:layout_weight="1" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_detail" /> </LinearLayout> <LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:background="@color/white" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_vertical" android:layout_marginBottom="5dip" android:layout_marginTop="2dip" android:layout_weight="1" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_model" android:textStyle="bold" /> <TextView android:id="@+id/carModel" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_vertical" android:layout_weight="1" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_detail" /> </LinearLayout> <LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:background="@color/white" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_vertical" android:layout_marginBottom="5dip" android:layout_marginTop="2dip" android:layout_weight="1" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_version" android:textStyle="bold" /> <TextView android:id="@+id/carYear" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_vertical" android:layout_weight="1" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_year" /> </LinearLayout> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="1dip" android:layout_weight="1" android:background="@color/grey" > <LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:background="@color/white" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginBottom="5dip" android:layout_marginTop="2dip" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_year" android:textStyle="bold" /> <TextView android:id="@+id/carYear" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_year" /> </LinearLayout> <LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:background="@color/white" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginBottom="5dip" android:layout_marginTop="2dip" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_mileage" android:textStyle="bold" /> <TextView android:id="@+id/carYear" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_year" /> </LinearLayout> <LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:background="@color/white" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginBottom="5dip" android:layout_marginTop="2dip" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_engine_capacity" android:textStyle="bold" /> <TextView android:id="@+id/carYear" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_vertical" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_year" /> </LinearLayout> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="1dip" android:layout_weight="1" android:background="@color/grey" > <LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:background="@color/white" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginBottom="5dip" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_engine_type" android:textStyle="bold" /> <TextView android:id="@+id/carYear" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_year" /> </LinearLayout> <LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:background="@color/white" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginBottom="5dip" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_exterior_color" android:textStyle="bold" /> <TextView android:id="@+id/carYear" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_year" /> </LinearLayout> <LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:background="@color/white" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginBottom="5dip" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_city" android:textStyle="bold" /> <TextView android:id="@+id/carYear" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_year" /> </LinearLayout> </TableRow> <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="1dip" android:layout_weight="1" android:background="@color/grey" > <LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:background="@color/white" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginBottom="5dip" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_transmittion" android:textStyle="bold" /> <TextView android:id="@+id/carYear" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_year" /> </LinearLayout> <LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:background="@color/white" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginBottom="5dip" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_area" android:textStyle="bold" /> <TextView android:id="@+id/carYear" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_year" /> </LinearLayout> <LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:background="@color/white" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginBottom="5dip" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_registered_city" android:textStyle="bold" /> <TextView android:id="@+id/carYear" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:background="@color/white" android:gravity="center_horizontal" android:text="@string/car_year" /> </LinearLayout> </TableRow> </TableLayout> 

Solutions Collecting From Web of "具有相同行高的表布局"

你可以改变你的TableRow – > LinearLayout

 <LinearLayout android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:background="@color/white" android:orientation="vertical" > 

这里是你的解决scheme:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:weightSum="4" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="#B0B0B0" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="1dp" android:orientation="vertical" android:weightSum="4" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="#B0B0B0" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="1dp" android:orientation="vertical" android:weightSum="4" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="#B0B0B0" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="1dp" android:orientation="vertical" android:weightSum="4" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="#B0B0B0" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="1dp" android:orientation="vertical" android:weightSum="4" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="#B0B0B0" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="1dp" android:orientation="vertical" android:weightSum="4" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#B0B0B0" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="#B0B0B0" /> </TableRow> </TableLayout> </LinearLayout> 

在这里输入图像说明

这里是一个解决scheme:

 <TableLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical"> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_gravity="fill" /> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_gravity="fill" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical"> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_gravity="fill" /> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_gravity="fill" /> </TableRow> 

在API 11中引入,您可以在TableLayout上设置android:measureWithLargestChild="true" ,在每个TableRow上设置android:layout_weight="1"

我刚刚遇到这个问题,并解决了这个问题。 事实certificate,阳光的答案为我工作。

虽然正如评论中提到的那样,但我可以通过阅读来判断它是否有效。 我是一个新手,所以不能留下评论,也不能投它有用。 所以我在这里发布。

这个想法是让你让TableRow决定行的高度。 通过将layout_height设置为wrap_content ,行的高度取决于TextView的内容。

由于单元格的边界线是TextView的边界,所以layout_height应该是match_parent

我希望它是有用的Android新手(是的,我也是新来的机器人)。

 <TableRow android:layout_width="fill_parent" android:layout_height="xxdip" // HERE define a fixed size