我正在尝试在活动中动态设置表格布局。行数和列数取决于用户的输入。
所以问题 - 每次行数都很好但每行中的列数(textViews)总是等于数组no_periods[ ]
的最小值。例如。如果no_days的值为5,则no_periods[]
具有2,3,4,5,6个值。该表将有5行,但每行只有2个textViews,而不是相应行中的2,3,4,5,6个textView。
以下是我正在尝试的代码
//loop to set the rows and text view in the table layout of activity_home
for (int i = 0; i < no_days; i++) {
tableRow = new TableRow(TimeTable.this);
for (int j = 0; j <no_periods[i]; j++) {
textView = new TextView(TimeTable.this);
textView.setHint("Click");
textView.setClickable(true);
textView.setOnClickListener(click_listen);
int maxpixels = screenWidth/(no_periods[i]);
int minpixels = maxpixels;
textView.setPadding(10, 10, 10, 10);
textView.setMaxWidth(maxpixels);
textView.setMinWidth(minpixels);
tableRow.addView(textView);
}
tableLayout.addView(tableRow);
}
答案 0 :(得分:1)
使用TableRow weight :
,而不是设置max和minWidthtextView.setPadding(10, 10, 10, 10);
tableRow.addView(textView, new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1));
这将在每行的TextView中分配水平空间。
PS。您可能也想使用textView.setGravity(Gravity.CENTER);
。