以编程方式将TableRows插入TableLayout - TableRow中的TextView将不会显示

时间:2014-01-11 08:20:26

标签: java android textview tablelayout layoutparams

好的,所以每次按下按钮时,我都会尝试以编程方式将TableRows插入TableLayout。这些行中的每一行都包含设置为某些String的TextView。我的问题是,虽然TableRow已成功插入,但TextView中的文本TableRow内的文本将不会显示。

以下是我正在做的事情:

    //prepare TextView to put inside a TableRow
    TextView text = new TextView(MyClass.this);
    text.setText(someString);
    text.setTextSize(15);
    text.setTextColor(Color.parseColor("#FF9900"));
    text.setLayoutParams(new LayoutParams
            (LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));


    //Prepare TableRow to be inserted
    TableRow row = new TableRow(MyClass.this);
    row.addView(text);
    row.setPadding(4,4,4,4);
    row.setGravity(Gravity.CENTER);
    row.setLayoutParams(new LayoutParams
            (LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));

    //add row to the table
    someTableLayout.addView(row);

结果: 插入一行,但我看不到文本(我知道行已插入,因为我可以看到每行之间的分隔符)。我猜它与LayoutParams有关?我可能会忽略一些非常愚蠢的东西......但我不知道......

单击Roll之后的

屏幕截图,其中应插入带字符串/ TextView的行: enter image description here

“滚动开始”TextView是我通过XML文件放入的第一行。它显示正常,但以编程方式插入的行不

2 个答案:

答案 0 :(得分:1)

首先,您有TextView高度为match_parenttablerow高度为wrap_content,因此请将TextView高度设为wrap_content。

然后为ex分配适当的LayoutParams:

TextView text = new TextView(MyClass.this);
text.setText(someString);
text.setTextSize(15);
text.setTextColor(Color.parseColor("#FF9900"));
text.setLayoutParams(new TableRow.LayoutParams
        (LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));


//Prepare TableRow to be inserted
TableRow row = new TableRow(MyClass.this);
row.addView(text);
row.setPadding(4,4,4,4);
row.setGravity(Gravity.CENTER);
row.setLayoutParams(new TableLayout.LayoutParams
        (LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));

//add row to the table
someTableLayout.addView(row);

答案 1 :(得分:0)

试试这个:

text.setLayoutParams(new LayoutParams
            (LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));


text.setLayoutParams(new LayoutParams
            (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
相关问题