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 に答える