我想扩展TableLayout类,这样行将自动由类填充。我遇到的问题是我在自定义类中添加的行不显示。扩展TableLayout类 - 添加行
Ex。在活动内:
private TextView getTableCell(String text) {
TextView tv = new TextView(this);
tv.setText(text);
tv.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
return tv;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DatasetTableLayout table = (DatasetTableLayout) findViewById(R.id.table);
TableRow tr = new TableRow(this);
tr.addView(getTableCell("activity1"));
tr.addView(getTableCell("activity2"));
tr.addView(getTableCell("activity3"));
table.addView(tr);
这成功地将一行添加到表中。然而,我的自定义类中:
private TextView getTableCell(String text) {
TextView tv = new TextView(context);
tv.setText(text);
tv.setLayoutParams(new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
return tv;
}
private void update() {
TableRow tr = new TableRow(context);
tr.addView(getTableCell("class1"));
tr.addView(getTableCell("class2"));
tr.addView(getTableCell("class3"));
addView(tr);
}
不成功添加行。那么它会添加一行,因为getChildCount()和getChildAt()确实会返回这一行 - 但它不会显示。
我错过了什么吗?
我发现问题。在DatasetTableLayout.getTableCell()(DatasetTableLayout扩展TableLayout)中,调用新的LayoutParams()创建一个android.widget.TableLayout.LayoutParams对象,当我需要的是一个android.widget.TableRow.LayoutParams。 获得的教训 - 不要依赖Eclipse的组织导入命令! – Adam 2011-01-25 14:37:23
它拯救了我的生命。你正确的任何layoutparam不工作tablelayout但talberow.layoutparam – Adem 2011-09-12 13:52:34