我有一个小应用程序加载图像,将它们放在ListView中。我希望ListView中的项目有限制,当最后添加新图像时,图像将在开始时删除。我当前的实现,虽然有效,但不能很好地删除项目。 这是我目前的代码:
if (adapter.getCount() > 20) {
for (int i = 0; i < 10; i++) {
adapter.remove(adapter.getItem(0));
}
}
adapter.notifyDataSetChanged();
问题是位置保持不变,但所有图像都会移位,这意味着会跳过几个图像。
答案 0 :(得分:0)
这个答案似乎解释了可能导致问题的原因:
https://stackoverflow.com/a/11027830/3570280
这两种解决方案中的一种可能会解决您的问题:
如果图片似乎保留了以前的位置,请尝试将 i 置于0:
if (adapter.getCount() > 20) {
for (int i = 0; i < 10; i++) {
adapter.remove(adapter.getItem(i));
}
}
adapter.notifyDataSetChanged();
这可以帮助您跟上位置的变化。
每次删除时“刷新”适配器及其周围环境可能会重置图像的位置:
if (adapter.getCount() > 20) {
for (int i = 0; i < 10; i++) {
adapter.remove(adapter.getItem(0));
adapter.notifyDataSetChanged();
}
}
我建议尝试两者并对代码块进行微调以使其正常工作。也许甚至可以同时尝试这两种解决方案。