2

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

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

此代码将动画应用于列表中的第 0 个项目。当我滚动列表时也会应用此动画,当然列表必须在滚动时再次呈现,但是有什么办法可以防止这种情况发生吗?记住,记住这段代码在方法中getView()

非常感谢!

4

1 回答 1

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
        ...
    }
}
于 2013-03-04T14:22:37.577 回答