好的,所以每次按下按钮时,我都会尝试以编程方式将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的行:
“滚动开始”TextView是我通过XML文件放入的第一行。它显示正常,但以编程方式插入的行不
答案 0 :(得分:1)
首先,您有TextView
高度为match_parent
且tablerow
高度为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));