#android #listview #android-listview #convertview #getview
#Android #listview #android-listview #convertview #getview
Вопрос:
У меня очень странное поведение, когда адаптер ListView предоставляет в метод getView одни и те же convertViews, даже если все они видны:
getView(); 0; holder: ViewHolder@4289bde8
getView(); 1; holder: ViewHolder@4289bde8
getView(); 4; holder: ViewHolder@4289bde8
getView(); 2; holder: ViewHolder@4289bde8
getView(); 3; holder: ViewHolder@4289bde8
Это происходит, только если я вызываю setImageBitmap с асинхронно загруженным изображением. Если этот метод вызывается со статическим растровым изображением (например, растровым изображением из ресурсов) — все работает так, как задумано:
getView(); 2; holder: ViewHolder@426fd408
getView(); 1; holder: ViewHolder@42899128
getView(); 0; holder: ViewHolder@4289bdf0
getView(); 4; holder: ViewHolder@4289b598
getView(); 5; holder: ViewHolder@4289b480
Ответ №1:
Для меня это стало большим сюрпризом, но проблема была связана с моей опечаткой, когда я случайно указал android:layout_height="wrap_content"
для ListView. Сразу после того, как я изменил его на правильное android:layout_height="match_parent"
значение, механизм рециркуляции начал работать корректно даже для асинхронных растровых изображений!