2016-04-28 9 views
2

私は2つの活動の間で共有要素に使用されるカスタムTransitionを持っています。 TransitionValuesパラメータは両方の方法、captureStartValuescaptureEndValuesで同じ属性を持つ同じViewを持っているのでTransition.captureStartValuesとTransition.captureEndValuesの属性が同じであるのはなぜですか?

私の移行は動作しません。開始と終了の値が同じであれば、私の移行には何もしません。

どうしてですか?

+0

アクティビティトランジションでは、1つのアクティビティから別のアクティビティへビューを実際に転送することはありません。その代わりに、位置、サイズ、標高を転送し、その位置で共有要素Viewを中継します。あなたが何か他のものを移す必要があるならば、それはあなた次第です。 –

+0

しかし、共有要素で使用されるカスタムトランジションを構築する場合、開始シーンと終了シーンから異なる値を取得する必要があります。ビューと属性が同じ場合、これらの値をどのように取得できますか?例えば、 –

+0

。私は私のヒーローViewのscrollXプロパティをアニメーション化したいと思います。 ActivityBのレイアウトにscrollX = 10があります。 ActivityBのレイアウトにscrollX = 50があります。 captureStartValuesとcaptureEndValuesは常にscrollX = 0のビューで呼び出されるため、ActivityAからActivityBへの遷移はアニメーション化できません。 50. –

答えて

0

setEnterSharedElementCallbackを使用してSharedElementCallbackを設定し、onSharedElementStartとonSharedElementEndをオーバーライドして、開始と終了の両方でスクロールを設定する必要があります。それが反転すると、開始点の前に終了点が呼び出され、遷移が反転されます。

+0

これらのスクロール値は、自分のアクティビティーのレイアウトxmlに設定します。私はちょうどそれらの値を私のカスタムトランジションで私のアニメーターを作るために読んでみたい。 –

関連する問題