2013年2月19日

AndroidでAnimation終了後にViewを削除する

動的に追加したViewに対してアニメーションを実行して、アニメーションが終了したらそのViewを完全に削除してしまいたい、というケースがあってハマったのでメモ。


基本的にはアニメーションの終了後に何かをするには、前もってAnimationListenerをセットしておけば良いはず。

AnimationListener の onAnimationEnd というメソッドをオーバーライドして処理を書く事になる。 

この onAnimationEnd の中でアニメーション対象のViewを親のViewから削除しようとして、次の様に書いたら parentView.removeView の所で エラーで落ちた。




調べてみると、どうやら onAnimationEnd 内でUIの処理をするとまずいみたいだ。parentView.post() を呼んでUIスレッドに処理をRunnableの形で渡せば問題なく実行出来る様になった。