以下是一个示例代码,演示如何对齐TableLayout中的列:
TableLayout tableLayout = findViewById(R.id.tableLayout);
// 获取列数
int numColumns = tableLayout.getChildCount();
// 遍历每个TableRow
for (int i = 0; i < numColumns; i++) {
TableRow tableRow = (TableRow) tableLayout.getChildAt(i);
int numCells = tableRow.getChildCount();
// 填充缺少的列
if (numCells < numColumns) {
for (int j = numCells; j < numColumns; j++) {
TextView emptyCell = new TextView(this);
tableRow.addView(emptyCell);
}
}
}
// 找到每列的最大宽度
int[] columnWidths = new int[numColumns];
for (int i = 0; i < numColumns; i++) {
for (int j = 0; j < numColumns; j++) {
TableRow tableRow = (TableRow) tableLayout.getChildAt(j);
TextView textView = (TextView) tableRow.getChildAt(i);
int width = textView.getWidth();
columnWidths[i] = Math.max(columnWidths[i], width);
}
}
// 设置每个TextView的宽度为最大宽度
for (int i = 0; i < numColumns; i++) {
for (int j = 0; j < numColumns; j++) {
TableRow tableRow = (TableRow) tableLayout.getChildAt(j);
TextView textView = (TextView) tableRow.getChildAt(i);
textView.setWidth(columnWidths[i]);
}
}
在这个示例中,我们假设表格中的每个单元格都是TextView。你可以根据需要进行修改,例如使用其他视图或自定义单元格布局。