Я пытаюсь показать ProgressBar
простой анимацией для каждого элемента ListView
, но
при прокрутке анимация ProgressBar
останавливается. После прокрутки анимация начинается снова.
См. Изображение ниже.
Я пытаюсь показать ProgressBar
простой анимацией для каждого элемента ListView
, но
при прокрутке анимация ProgressBar
останавливается. После прокрутки анимация начинается снова.
См. Изображение ниже.
Я использовал этот синтаксис в своем адаптере, и проблема решена!
public class AdapterDownload extends ArrayAdapter<StructDownload> {
public AdapterDownload(ArrayList<StructDownload> array) {
super(G.context, R.layout.item_layout, array);
}
private static class ViewHolder {
public ViewHolder(View view)
{
}
public void fill(final ArrayAdapter<StructDownload> adapter, final StructDownload item, final int position)
{
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
}
}
Спасибо.
вы должны использовать анимацию в getView() и установить анимацию для convertView Пример:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
StructureArticles item = getItem(position);
if (convertView == null) {
convertView = G.inflater.inflate(R.layout.adapter_articles, parent, false);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.fill(this, item, position);
Animation animationListView = AnimationUtils.loadAnimation(context, R.anim.scale_fade_in);
convertView.startAnimation(animationListView);
return convertView;
}
Это останавливается, потому что getview вызывается снова и снова, когда элементы списка видны, таким образом, сброс представления, чтобы избежать пропусков/отставаний кадров на устройствах.
то, что вам нужно сделать, - создать держатель вида с булевым и установить его как тег в представление.. каждый раз он оживляет логическое значение должно быть истинным и ложным, когда оно останавливается.. поэтому, когда getview называется вашей панелью прогресса анимация все еще запускается или останавливается в зависимости от логического значения.