android:zAdjustmentの使いどころ

AndroidのAnimationはandroid:zAdjustment
を使ってz-orderを指定できます。
Animation | Android Developers
normal(0), top(1), bottom(-1)の3値が指定できます。デフォルトはnormalです。
普通はあまり意識する必要のない属性ですが、時折役立ちます。 今回はActivity切り替え時のTransitionで出番がありました。
ActivityA → ActivityB への画面切り替えで、TransitionはActivityB側だけに適用するシーンを想像してください。横スライドがイメージしやすいでしょうか。
普通はこんな感じで実装します。
- ActivityAからstartActivityでActivityBを呼び出す
- 画面切り替えのTransition
- ActivityB表示
- backキーでActivityB終了
- 画面切り替えのTransition
- ActivityA表示
これだと何も意識しなくても問題ないです。
ところが今回は
- ActivityAからstartActivityでActivityBを呼び出す
- ActivityAはfinishする
- 画面切り替えのTransition
- ActivityB表示
- backキー押下時にstartActivityを使ってActivityAを呼び出す
- ActivityB終了
- 画面切り替えのTransition★
- ActivityA表示
という流れ。ActivityをStackしていくのではなく、次を呼び出すたびに自身を終了しています。Androidっぽくないですが、やむを得ないこともあるんです...
この場合、★のところでActivityAが上にくるので、ActivityBのTransitionが裏に隠れてしまい、あたかも何も動いていないように見えるという問題が起きました。
こういうときにandroid:zAdjustment
を使うんですね。ActivityBが上にくるようにしたら、無事Transitionが期待通りの動きになりました。
関連(するかもしれない)記事
おススメ