我正在尝试构建一个 Twitter 样式的 ListView,但我无法在同一个列表中多次重用同一个 ImageView。加载多个副本似乎很浪费,并且由于 UI 虚拟化而导致滚动变慢。有什么解决方法吗?
public class TwitterCell extends ListCell<Object> {
private static HashMap<String, ImageView> images = new HashMap<String, ImageView>();
@Override
protected void updateItem(Object tweet, boolean empty) {
super.updateItem(tweet, empty);
Tweet t = (Tweet) tweet;
if (t != null) {
String message = t.getMessage();
setText(message);
String imageUrl = t.getImageUrl();
if (!images.containsKey(imageUrl)) {
images.put(imageUrl, new ImageView(imageUrl));
}
setGraphic(images.get(imageUrl));
}
}