@moved_on

Как решить проблемы отображения элементов listview?

Всем привет.
Проблема 1: listview кэширует отображение элементов. То есть - мы видим первые 20 элементов на экране. Прокручивая вниз , listview берет отображение первых элементов, тем самым получается список вроде 1-2-3-4-5-1-2-3-4-5-1-2-3-4-5-... Пробовал list.setScrollingCacheEnabled(false), android:scrollingCache="false" - не помогает. Как решить?

Проблема 2: Фрагменты A-B. Фрагмент A содержит элементы с изображениями, загруженными с сервера. Изображения кэшируются. Переходим на фрагмент B. Возвращаемся на фрагмент A. Список остается, однако изображения "переустанавливаются", такое впечатление, что заново начинается процесс их загрузки с сервера или из кэша. Создается эффект, похожий на мерцание. Как решить?

Спасибо за уделенное время.

В Дополнении - GetView адаптера для проблемы 1:
@Override
    public View getView(int position, View convertView, ViewGroup parent) {

        MiniHolder viewHolder = null;
        final Brand listViewItem = objects.get(position);
        TextView name;

        if (convertView==null)
        {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_bmg, null);
            name=(TextView)convertView.findViewById(R.id.bmgvalue);
            viewHolder=new MiniHolder(null,name,null);
            viewHolder.getBmg().setText(listViewItem.getBrand());
            convertView.setTag(viewHolder);
        }
        else
        {
            viewHolder = (MiniHolder) convertView.getTag();
        }
        return convertView;
    }
  • Вопрос задан
  • 2755 просмотров
Решения вопроса 1
anyd3v
@anyd3v
Как минимум не понятно почему viewHolder.getBmg().setText(listViewItem.getBrand()); при convertView==null. В ветке if (convertView==null) только должен заполняться ViewHolder а код viewHolder.getBmg().setText(...) должен выполняться в любом случае, тк если convertView!=null в View останутся старые данные.

Про картинки, что вы используете? Bitmap'ы на самом деле много весят в памяти и их декодирование занимает время. Попробуйте https://github.com/nostra13/Android-Universal-Imag... вместо изобретения велосипедов
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы