滚动时调用getView。

时间:2013-03-04 14:13:40

标签: android

在我listview的自定义适配器中,我添加了这样的动画:

        View lastAddedItem = parent.getChildAt(0);  
        if(lastAddedItem != null)  {
            Animation a = AnimationUtils.loadAnimation(c, R.anim.push);
            lastAddedItem.startAnimation(a);
        }

此代码将动画应用于列表中的第0项。当我滚动列表时也会应用此动画,当然滚动时列表必须再次渲染,但是有些我可以阻止这个吗?请记住,请记住此代码位于方法getView()

非常感谢!

1 个答案:

答案 0 :(得分:0)

如果您希望它在第0个项目上运行动画,您应该只能检查position附带的getView()变量。如果为0,则在提供的View上运行动画。

修改:为每条评论添加了一个布尔标记。

boolean isFirstRun = true;

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if(convertView == null) {
        // init view
        ...
    } 
    // populate view
    ...

    if(position == 0 && isFirstRun) {
        isFirstRun = false;
        // do animation stuff to convertView
        // this will be the 0th item
        ...
    }
}