You are here: Home / TinBlog / Android で AnimationListener は使用しちゃダメ

Android で AnimationListener は使用しちゃダメ

Posted by h2 at Nov 24, 2015 03:20 PM |
Filed under:
ダメ。絶対。

ブログの停滞を解消したい今日この頃。あ、赤斑だった金魚は元気です。ほぼ回復しましたが、まだ若干引きずっている感じ。

 

・・・で。本題の、 Android で AnimationListener は使用するな。

Android でも iPhone でも、画面の遷移やらで OS 組み込みのアニメーションを使用することはよくあると思う。

Android の場合、Animation と ViewFlipper やら Switcher やら、その他もろもろと組み合わせて管理するパターンのこと。

 

しかーし。Animation の終了、つまり View の遷移や移動の完了を知るために Listener を登録して、onAnimationEnd を取得するという当たり前の方法が、なんと実は使えないということが判明しました。

ちなみにこの方法、そんなトリッキーな方法ではない。むしろまっとうな方法だし、いろんなところで紹介されているし、ちゃんと動く端末もある。

 

・・・・・・・・・。ええ、そうです。動く端末「」ある、です。

 

なんと動かない端末もあるんですよ、これが。もう、笑っちゃう。

名指しは避けるけど、Sで始まる某社様謹製の某端末だ。

目の付け所はもっとしっかりしないとね。

 

で、どうするかというと。

    long duration = animation.getDuration();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            // onAnimationEnd
        }
    }, duration + 100);

・・・みたいな。

なんという泥臭さ。泥端末だけに。

 

もう、ね。全力で海に向かって叫びたい気分ですよ。

OSの決めたルールぐらいちゃんと守ろうよ。

Filed under:
« October 2019 »
October
SuMoTuWeThFrSa
12345
6789101112
13141516171819
20212223242526
2728293031