我有一个包含多个
似乎任何尝试设置行高度的方法都会被TableLayout覆盖。有人知道如何解决这个问题吗?
TableRow
视图的 TableLayout
。我希望能够编程指定行的高度。例如: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覆盖。有人知道如何解决这个问题吗?