0
我有一個例程,在TableLayout
內動態創建TableRow
,這是從XML中誇大的。我試圖設置TableRow
s是一個特定的寬度,用一個自定義按鈕填充它們(ButtonElement
)...但沒有任何顯示。註銷寬度爲TableRow
,似乎它被設置爲0,這可能解釋爲什麼它沒有被顯示。動態佈局setLayoutParams沒有設置
final Drawable normalBtnBg = getResources().getDrawable(R.drawable.button_states);
TableRow tableRow;
for (int x = 0; x < xDim; x++) {
tableRow = new TableRow(this);
tableRow.setLayoutParams(new TableLayout.LayoutParams(400, 20));
for (int y = 0; y < yDim; y++) {
// create the new button
mButtons[x][y] = new ButtonElement(this, x, y);
mButtons[x][y].setBackgroundDrawable(normalBtnBg);
mButtons[x][y].setLayoutParams(new LayoutParams(20, 20));
// add the button to the TableLayout
tableRow.addView(mButtons[x][y]);
}
// add the TableRow to the table
mButtonGrid.addView(tableRow, new TableLayout.LayoutParams(400, 20));
Log.d(LOG_TAG, "trWidth - " + tableRow.getWidth());
}
tableRow.getWidth()
總是返回值爲0 ...我已經驗證正在生成的按鈕,就好像我直接將它們添加到mButtonGrid
,它們顯示(當然,不是在TableRow
,只是垂直下)。
任何幫助表示讚賞。
編輯:
想通了這一點,請參閱我的回答如下。
你能打印從tabeRow結果。 getMeasuredWidth()? –
@Damian - 值也是0。 –