我有一个列表视图,当滚动并且项目离开屏幕时,当我滚动回它们时(文本和复选框),它们不会被重绘。事实上,滚动到列表视图中的屏幕底部之外的项目永远不会被绘制。这只发生在Froyo。任何其他版本的工作正常。我已经检查过,当调用getItem方法时,适配器中的数据是预期的,它只是不可见。列表视图项目在那里(每个项目占用相同数量的屏幕空间),一旦滚动屏幕再重新打开,我就看不到文本或复选框。
我的代码就是这样:
for(checklist cl : checkLists) {
ArrayList<checklistItem> ChecklistItems = database.getChecklistItems(
cl.getId());
ListView lv = new ListView(this);
lv.setScrollingCacheEnabled(true);
lv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
la = new checklistItemAdapter(this, layoutItem, ChecklistItems);
la.setActivity(this);
lv.setAdapter(la);
TextView tv = new TextView(this);
tv.setText(cl.getItemText());
tv.setGravity(1);
tv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 50));
tv.setBackgroundColor(Color.BLUE);
tv.setTextSize(28);
tv.setTextScaleX(2);
tv.setTypeface(Typeface.DEFAULT_BOLD);
tv.setTypeface(Typeface.SANS_SERIF);
layoutChecklist = new LinearLayout(this);
layoutChecklist.setOrientation(1);
layoutChecklist.addView(tv);
layoutChecklist.addView(lv);
layoutChecklists.addView(layoutChecklist);
}
答案 0 :(得分:0)
我通过使用ViewGroup(每个文档的首选方法)解决了这个问题,而不是在代码中创建所有视图。