在Android中动态添加TableRows不起作用

时间:2013-12-10 15:32:52

标签: android android-tablelayout

我在向android中的表格布局添加表格时遇到了一些问题。

这是我的代码:

int z = 0;
        for(String detail: details){
            TableRow tr = new TableRow(this);
            tr.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

            //odd / even
            if(z%2 == 0)
                tr.setBackgroundColor(Color.parseColor("#F5F5F5"));

            //set detail text
            TextView detailText = new TextView(this);
            RelativeLayout.LayoutParams dtlp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);        
            detailText.setTextSize(16.0f);
            detailText.setTextColor(Color.parseColor("#333333"));
            detailText.setPadding(20, 10, 20, 10);
            detailText.setLayoutParams(dtlp);
            detailText.setText(detail);
            tr.addView(detailText);

            detailsTable.addView(tr);

            ++z;
        }

我无法弄清楚问题出在哪里。正在设置详细文本视图,但不会显示表格。

1 个答案:

答案 0 :(得分:0)

一个。尝试将dtlp的“宽度参数”更改为“ RelativeLayout.MATCH_PARENT

湾在For循环块之前创建两个这样的布局参数。

TableLayout.LayoutParams tlps=new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT,TableLayout.LayoutParams.WRAP_CONTENT);

TableRow.LayoutParams trps=new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,TableRow.LayoutParams.WRAP_CONTENT);

在循环中替换

  detailText.setLayoutParams(dtlp);

。通过

  detailText.setLayoutParams(trps);

并替换

   detailsTable.addView(tr);

<强>与

    detailsTable.addView(tr,tlps);

希望这会有所帮助。