【发布时间】:2015-04-20 03:54:20
【问题描述】:
在 XML 中,我用 TableRow(表格的标题)定义了一个 TableLayout。 每隔一行将以编程方式添加。问题:我无法让新行与 XML 之一对齐
- 3个TextView数组,1个TableRow数组
- 循环使用 TextView 和 TableRows 填充这些数组
- 全部交给 setTableRowParams 方法
- 为 TextView 设置文本
-
将所有行添加到 TableLayout
driversNames = new TextView[DRIVERSAMOUNT]; driversDriven = new TextView[DRIVERSAMOUNT]; driversRemaining = new TextView[DRIVERSAMOUNT]; driversRows = new TableRow[DRIVERSAMOUNT]; for (int i = 0; i < DRIVERSAMOUNT; i++) { driversNames[i] = new TextView(this); driversDriven[i] = new TextView(this); driversRemaining[i] = new TextView(this); driversRows[i] = new TableRow(this); setTableRowParams(driversRows[i]); driversNames[i].setText(driversArray[i].getName()); driversDriven[i].setText("" + driversArray[i].getTimeDriven()); driversRemaining[i].setText("" + driversArray[i].getTimeRemaining()); driversRows[i].addView(driversNames[i]); driversRows[i].addView(driversDriven[i]); driversRows[i].addView(driversRemaining[i]); tableLayout.addView(driversRows[i]); }setTableRowParams() 方法
TableLayout.LayoutParams tableRowParams = new TableLayout.LayoutParams (TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT); tableRowParams.setMargins(10, 10, 10, 10); tr.setLayoutParams(tableRowParams);<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_driver" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginBottom="10dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="20dp" android:elevation="10dp" card_view:cardCornerRadius="2dp"> <TableLayout android:id="@+id/tableDrivers" android:layout_width="match_parent" android:layout_height="wrap_content"> <TableRow android:id="@+id/driversRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp"> <TextView android:id="@+id/tVDriversTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_span="3" android:layout_weight="1" android:text="@string/card_drivers" android:textAppearance="?android:attr/textAppearanceLarge" /> </TableRow> <TableRow android:id="@+id/driversRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp"> <TextView android:id="@+id/tVDriversName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/drivers" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/tVDriversDriven" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/timeDriven" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/tVDriversRemaining" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/timeLeft" android:textAppearance="?android:attr/textAppearanceMedium" /> </TableRow> <!-- THE VALUES ARE ADDED PROGRAMATICALLY --> </TableLayout> </android.support.v7.widget.CardView>
这就是结果。如您所见,Driver 1-4 行与标题不一致。对不起外语;-)
你能告诉我我的错误在哪里吗?
【问题讨论】:
标签: android format row android-tablelayout