2016-04-28 2 views
2

J'ai une coutume Transition utilisé dans les éléments partagés entre mes deux activités.Pourquoi Transition.captureStartValues ​​et Transition.captureEndValues ​​ont la même vue avec les mêmes attributs?

Ma transition ne fonctionne pas parce que les paramètres TransitionValues a le même View avec les mêmes caractéristiques dans les deux méthodes, captureStartValues et captureEndValues. Donc, ma transition n'a pas quoi faire une fois que les valeurs de début et de fin sont les mêmes.

Pourquoi cela se produit-il?

+0

Les transitions d'activité ne transfèrent pas réellement la vue d'une activité à l'autre. Au lieu de cela, il transfère l'emplacement, la taille et l'élévation et relaie l'élément partagé View à cet emplacement. Si vous devez transférer autre chose, c'est à vous de le faire. –

+0

Mais quand je construis une Transition personnalisée utilisée dans des éléments partagés, j'ai besoin de capturer ces différentes valeurs à partir de la scène de début et de fin. Comment pourrais-je obtenir ces valeurs si la vue et les attributs sont les mêmes? –

+0

par exemple. Je veux animer la propriété scrollX de mon héros View. Dans ma mise en page ActivityA, mon héros View a scrollX = 10. Dans ma présentation ActivityB il a scrollX = 50. Je ne peux pas animer cette transition d'ActivityA à ActivityB car les fonctions captureStartValues ​​et captureEndValues ​​sont toujours appelées avec une vue avec scrollX = 50. –

Répondre

0

Vous devez définir SharedElementCallback en utilisant setEnterSharedElementCallback et remplacer les onSharedElementStart et onSharedElementEnd et définir le défilement au début et à la fin. Quand il s'inverse, la fin est appelée avant le début pour inverser la transition.

+0

J'ai défini ces valeurs de défilement sur ma mise en page xml dans mes activités. Je veux juste lire ces valeurs pour faire mes animateurs dans ma transition personnalisée. –