共享元素EXIT Transition从未使用过?

时间:2015-10-01 13:01:44

标签: android android-animation android-5.0-lollipop android-transitions

简介

我目前正在使用活动转换和共享元素。

我所知道的

我理解内容Transitions的工作原理。 当他们走A - >时,他们按此顺序播放B:

  1. 活动退出转换
  2. B活动淡出的背景
  3. 在B活动上输入转换
  4. 然后去B - >答:

    1. B活动的返回过渡
    2. 活动淡出的背景
    3. 重新启动活动转换
    4. 为了能够一个接一个地看到所有这些转换,必须将以下两个属性设置为false:

      • setAllowEnterTransitionOverlap
      • setAllowReturnTransitionOverlap

      我的问题

      现在开始使用共享元素转换!

      我注意到,无论配置如何,都不会播放Transition SharedElement 退出转换。

      无论如何,始终使用的SharedElement Enter 转换。

      到目前为止,我尝试过:

      • 停用TransitionOverlap并使用长退出(内容)转换
      • 为SharedElement设置两个不同的Transition Enter&退出过渡
      • 完全停用SharedElement 输入转换

      在所有这些情况下,ShareElement 退出过渡从不使用!

      我的问题

      • 这是正常行为吗?
      • 如果是,那么这次转型的重点是什么?

      提前感谢您的回答。

1 个答案:

答案 0 :(得分:4)

SharedElementExitTransition用于在将共享元素移动到被调用的Activity之前对共享元素执行某些操作。例如,您可能希望在被调用的Activity接管之前将其抬起并移动到屏幕的中心。

重要的是,在调用void Main() { string myXML = @" <x> <paths> <entry path=""C:\Users\Simon\AppData\Roaming\myprogram"" /> <entry path=""C:\Users\Simon\AppData\Roaming\yourprogram"" /> <entry path=""C:\Users\Simon\AppData\Roaming\hisprogram"" /> <entry path=""C:\OtherFolder\DummyProgram"" /> <entry src=""C:\OtherFolder\DummyProgram"" /> </paths> <Other>Other</Other> </x>"; XDocument doc = XDocument.Parse(myXML); doc.Descendants("entry") .Where(xd => xd.Attribute("path") != null && ((string)xd.Attribute("path")).ToLower().Contains("appdata")) .ToList() .ForEach(e => { var oldPath = (string)e.Attribute("path"); var newPath = @"#{APPDATA}\" + Path.GetFileName(oldPath); e.Attribute("path").SetValue(newPath); } ); Console.WriteLine( doc.ToString() ); } 后执行共享元素退出转换。因此,您必须在此时对共享元素进行更改。基本上,你这样做:

startActivity

然后共享元素退出转换将执行,并且不会传输共享元素,直到它完成。很少使用共享元素退出转换。