backport

技術ネタと野球とときどき雑談

android:zAdjustmentの使いどころ

2017-01-30
development Android

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を呼び出す
  • 2. 画面切り替えのTransition
  • 3. ActivityB表示
  • 4. backキーでActivityB終了
  • 5. 画面切り替えのTransition
  • 6. ActivityA表示

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

ところが今回は

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

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

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

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



コメント欄を表示する