android:zAdjustmentの使いどころ

2017/01/30

AndroidのAnimationはandroid:zAdjustmentを使ってz-orderを指定できます。

Animation | Android Developers

normal(0), top(1), bottom(-1)の3値が指定できます。デフォルトはnormalです。

普通はあまり意識する必要のない属性ですが、時折役立ちます。 今回はActivity切り替え時のTransitionで出番がありました。

ActivityA → ActivityB への画面切り替えで、TransitionはActivityB側だけに適用するシーンを想像してください。横スライドがイメージしやすいでしょうか。

普通はこんな感じで実装します。

    1. ActivityAからstartActivityでActivityBを呼び出す
    1. 画面切り替えのTransition
    1. ActivityB表示
    1. backキーでActivityB終了
    1. 画面切り替えのTransition
    1. ActivityA表示

これだと何も意識しなくても問題ないです。

ところが今回は

    1. ActivityAからstartActivityでActivityBを呼び出す
    1. ActivityAはfinishする
    1. 画面切り替えのTransition
    1. ActivityB表示
    1. backキー押下時にstartActivityを使ってActivityAを呼び出す
    1. ActivityB終了
    1. 画面切り替えのTransition★
    1. ActivityA表示

という流れ。ActivityをStackしていくのではなく、次を呼び出すたびに自身を終了しています。Androidっぽくないですが、やむを得ないこともあるんです...

この場合、★のところでActivityAが上にくるので、ActivityBのTransitionが裏に隠れてしまい、あたかも何も動いていないように見えるという問題が起きました。

こういうときにandroid:zAdjustmentを使うんですね。ActivityBが上にくるようにしたら、無事Transitionが期待通りの動きになりました。




関連(するかもしれない)記事


おススメ