У меня есть следующий код в методе GetView моего адаптера (который заполняет ListView)ListView, проверьте, когда GetView называется последний раз
public View getView(int position, View parent, ViewGroup root) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.my_layout, null);
ImageView imageView = view.findViewById(R.id.myImageView);
String address = addresses[position];
MyNetworkLibrary.loadAndSetImage(address, imageView);
return view;
}
Клетка ListView имеет ImageView, в котором они загрузить удаленное изображение.
Метод MyNetworkLibrary.loadAndSetImage загружает удаленное изображение и, когда он получил ответ, устанавливает его в моем ImageView. Проблема в том, что метод getView часто вызывается более одного раза для каждой строки ListView, чем, хотя я использую кеш, поскольку изображение не входит в кеш, мое приложение выполняет более одного запроса для каждой строки.
Есть ли способ узнать, когда getView вызывается в последний раз для строки? Или вы думаете о лучшем решении?
В макете, что значение вы установили для layout_width? – nKn
width = match_parent, height = wrap_content – Massimo
getView вызывается каждый раз, когда строка должна отображаться, поэтому, если пользователь прокручивается вверх и вниз, нет никакого реального «последнего вызова» для getView для этой строки ». Поскольку изображение не входит в кеш ">> почему вы не кешируете свои изображения? Противоположным является сетевой вызов для каждого вызова getView, который был бы плохим для характеристик ... – 2Dee