在我的项目中,我动态创建表。每张桌子都是大学生的每周时间表。因此,每个单元格中都有一个String。我的工作代码如下;
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
TableLayout.LayoutParams tableLayoutParams = new TableLayout.LayoutParams();
TableLayout tableLayout = new TableLayout(this);
tableLayout.setBackgroundColor(Color.BLACK);
// 2) create tableRow params
TableRow.LayoutParams tableRowParams = new TableRow.LayoutParams(width/9,height/12);
tableRowParams.setMargins(1, 1, 1, 1);
tableRowParams.weight = 1;
for(int m=0;m<major.size();m++) {
for (int i = 0; i <rowCount; i++) {
// 3) create tableRow
TableRow tableRow = new TableRow(this);
tableRow.setBackgroundColor(Color.BLACK);
for (int j = 0; j <columnCount; j++) {
// 4) create textView
TextView textView = new TextView(this);
textView.setBackgroundColor(Color.WHITE);
textView.setGravity(Gravity.CENTER);
WeeklySchedule ws=major.get(m);
String course;
if (i == 0 && j == 0) {
textView.setText(" ");
} else if (i == 0) {
textView.setText(cv[j-1]);
textView.setBackgroundColor(Color.GREEN);
} else if (j == 0) {
textView.setText(rv[i -1]); textView.setBackgroundColor(Color.GRAY);
} else if(j!=0&&i!=0){
if(ws.table[i-1][j-1].size()==2){
course=ws.table[i-1][j-1].get(0).getCourseCode()+"/"+ws.table[i-1][j-1].get(1).getCourseCode();
textView.setBackgroundColor(Color.RED);
}
else if(ws.table[i-1][j-1].size()==0){
course= " ";
}
else {
course=ws.table[i-1][j-1].get(0).getCourseCode();
}
textView.setText(course);
}
// 5) add textView to tableRow
tableRow.addView(textView, tableRowParams);
}
// 6) add tableRow to tableLayout
tableLayout.addView(tableRow, tableLayoutParams);
}
它正在运作,但结果就是这样; here
如何修正柱高并摆脱这些黑线。 请帮忙! 非常感谢您的建议