我試圖以編程方式創建TableLayout。它只是不會工作。儘管xml文件中的佈局相同。這是我的:以編程方式創建TableLayout
public class MyTable extends TableLayout
{
public MyTable(Context context) {
super(context);
setLayoutParams(new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
TableRow row = new TableRow(context);
row.setLayoutParams(new TableRow.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
Button b = new Button(getContext());
b.setText("hello");
b.setLayoutParams(new LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
row.addView(b);
addView(row)
}
}
...
// In main activity:
MyTable table = new MyTable(this);
mainLayout.addView(table);
當我運行這個,我沒有崩潰,但沒有出現。如果我擺脫了TableRow實例,至少該按鈕確實顯示爲TableLayout的直接子節點。我究竟做錯了什麼?
您可以發佈您的代碼的解決方案?看起來你已經在上面這樣做了。 – Atma 2011-08-29 21:19:26
謝謝! @Atma TableRows應該使用TableLayout.LayoutParams,而TableRows中的視圖應該使用TableRow.LayoutParams。 :) – Brayden 2012-05-15 15:03:28
可怕,你需要明確這樣做,但它對我來說,謝謝! – 2013-03-18 19:01:41