因此我尝试在Android中创建GridView样式布局而不实际使用自定义Gridview适配器,因为我不想让它滚动。我尝试过关闭滚动,但由于我在垂直的LinearLayout中添加其他元素,因此它会破坏我的布局。
我的下一个实验是使用TableLayout然后只是将膨胀的布局添加为表格单元格,但我也遇到了问题。这是一个我正在运行的测试,用于简要的概念证明:
TableRow trackingActivityRow = new TableRow(getActivity());
for(int j = 0; j < trackingActivities.size(); j ++) {
TrackingActivity trackingActivity = trackingActivities.get(j);
View trackingActivityCell = getActivity().getLayoutInflater()
.inflate(R.layout.table_cell_tracking_activity, trackingActivityRow, true);
TextView txtDescription = (TextView)trackingActivityCell.findViewById(R.id.txtDescription);
txtDescription.setText(trackingActivity.getDescription());
}
tableLayout.addView(trackingActivityRow);
它似乎正确地创建了单元格的数量,但它并不想像它应该那样设置文本。此外,在为每4个TrackingActivities创建一个新行时,我遇到了逻辑问题。 如果有人有任何意见,将不胜感激。
/ 更新 / 这是问题的图解。与&#34; Walk&#34;在它正确显示,但其他单元格只显示文本视图中应该已被替换的占位符文本。
答案 0 :(得分:0)
我基于带有listadapter的tablelayout创建了一个自定义的GridView。
扩展TableLayout中的setAdapterMethod的简化版本:
int itemPos = -1;
int numRows = (int) Math.ceil((double) adapter.getCount() / (double) mNumColumns);
for (int yPos = 0; yPos < numRows; yPos++) {
//Create new row
TableRow tableRow = new TableRow(this.getContext());
for (int xPos = 0; xPos < mNumColumns; xPos++) {
itemPos++;
View itemView = adapter.getView(itemPos, null, tableRow);
tableRow.addView(itemView);
}
this.addView(tableRow, new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.MATCH_PARENT));
}