所以,假设我有一个Xamarin.Forms应用程序,MainPage
具有以下布局:
+------------------------------+
| |
| +-------+ +-------+ |
| | | | | |
| |Button1| |Button2| |
| | | | | |
| +-------+ +-------+ |
| |
+------------------------------+
现在用户点击Button1
后,我希望页面转换为以下布局:
+------------------------------+
|---+ |
||B1| +-------+ +-------+ |
+---+ | | | | |
| |Button3| |Button4| |
+---+ | | | | |
||B2| +-------+ +-------+ |
|---+ |
+------------------------------+
棘手的部分是,我想要一个很好的动画转换:
有没有办法在xamarin.forms xaml中实现这种行为?
我现在能想到的唯一方法是使用AbsoluteLayout
并为按钮初始位置(或其容器)设置像素的绝对值。并通过使用适当的参数调用每个元素TranslateTo
和ScaleTo
方法来设置目标布局来进行转换。
但是如果我想在它们之间有更多的布局和转换,并支持更多的屏幕分辨率,我想这种方法很快就会变得难以维护。
如果我将这些布局放在不同的页面上,并在页面之间进行这样的自定义转换,我想如果可能的话,它会变得更加困难。
有关如何处理此问题的任何提示?
答案 0 :(得分:0)
在NavigationPage容器中从页面1导航到页面2时,可以使用共享元素过渡来移动内容。
我制作了一个nuget包,以在xamarin形式xaml中使用共享动画过渡,此处为源代码:
https://github.com/Evolutionlab/Xamarin.Plugin.SharedTransitions
这里是Nuget软件包:
https://www.nuget.org/packages/Xamarin.Plugin.SharedTransitions/