我有一个TableLayout
多TableRow
里面的观点。 我希望以编程方式指定行的高度。 例如
int rowHeight = calculateRowHeight();
TableLayout tableLayout = new TableLayout(activity);
TableRow tableRow = buildTableRow();
TableLayout.LayoutParams rowLp = new TableLayout.LayoutParams(
LayoutParams.FILL_PARENT, rowHeight);
tableLayout.addView(tableRow, rowLp);
但是,这是行不通的,并且默认为WRAP_CONTENT。 在周围挖Android源代码 ,我看到这个TableLayout
(由onMeasure()方法触发):
private void findLargestCells(int widthMeasureSpec) {
final int count = getChildCount();
for (int i = 0; i < count; i++) {
final View child = getChildAt(i);
if (child instanceof TableRow) {
final TableRow row = (TableRow) child;
// forces the row's height
final ViewGroup.LayoutParams layoutParams = row.getLayoutParams();
layoutParams.height = LayoutParams.WRAP_CONTENT;
好像任何试图设置行的高度将通过TableLayout覆盖。 任何人都知道解决的办法?