如何设置动态创建的表格布局列(单元格)的宽度和高度

时间:2016-04-28 13:26:53

标签: java android border cell tablelayout

在我的项目中,我动态创建表。每张桌子都是大学生的每周时间表。因此,每个单元格中都有一个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

如何修正柱高并摆脱这些黑线。 请帮忙! 非常感谢您的建议

0 个答案:

没有答案