現在位置: ホーム / TinBlog / Android で AnimationListener は使用しちゃダメ

Android で AnimationListener は使用しちゃダメ

作者: h2 最終変更日時 2015年11月24日 15時20分 |
カテゴリー:
ダメ。絶対。

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

 

・・・で。本題の、 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の決めたルールぐらいちゃんと守ろうよ。

タグ:
« 2019 年 2月 »
2月
12
3456789
10111213141516
17181920212223
2425262728