Я пытаюсь создать ListView в стиле Twitter, и я не мог повторно использовать один и тот же ImageView несколько раз в том же списке. Загрузка нескольких копий кажется расточительной и приводит к замедлению прокрутки из-за виртуализации пользовательского интерфейса. Есть ли обходные пути?Повторное использование одного и того же ImageView несколько раз в одной сцене на JavaFX
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));
}
}
Пытаться объяснить код вы размещаете, чтобы люди могли узнать из него – LionC
Если у вас есть исходный файл (ЦСИ), который вы хотите продублировать в другом месте, то вам необходимо создать новый образ и заимствовать свойство _image_ из источника (src). 'ImageView'' newImage' '=' 'new'' ImageView(); '' newImage.setImage (src.getImage()); ' –
Пожалуйста, используйте ссылку для редактирования выше, а не комментируя :-) Спасибо –