Listview项目滚动时动画停止

时间:2014-05-25 21:19:46

标签: java android listview

我试图为每个ProgressBar项目显示ListView一个简单的动画,但是 当我滚动时,ProgressBar动画停止。滚动结束后,动画再次开始。 见下图。

Link

3 个答案:

答案 0 :(得分:13)

你必须在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;
}

答案 1 :(得分:10)

我在我的适配器中使用了这个语法并解决了问题!

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) {

}

}

谢谢。

答案 2 :(得分:3)

它正在停止,因为当列表项可见时,会一次又一次地调用getview,从而重置视图以避免设备上的任何帧跳过/滞后。

你需要做的是创建一个带有boolean的视图持有者并将其设置为视图的标记..每次是动画布尔值应该是true而false当它停止时..所以当getview被调用时你的进度条动画仍在开始或停止,具体取决于布尔值..