рдорд╛рдЙ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреВрд░реНрдг рдПрдирд┐рдореЗрд╢рди рдПрдкреАрдЖрдИ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдкреГрд╖реНрда рдкрд░ рдПрдХ рдЬреАрд╡рдВрдд рдФрд░ рддрд░рд▓ рд╕рд╛рдордЧреНрд░реА рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреГрд╖реНрдареЛрдВ рдХреЗ рдмреАрдЪ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдкрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?.
рдпрд╣ рдпреБрдХреНрддрд┐ рдПрдХ рдорд╛рдЙ рд╕рдВрдХреНрд░рдордг рдПрдкреАрдЖрдИ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд┐рднреЗрджрд┐рдд рд╕рдВрдХреНрд░рдордг рд╣реИрдВ:
рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рдВрдХреНрд░рдордгреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╕рдВрдХреНрд░рдордгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рдЧрдгрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
public enum NavigationTransitionType
{
None,
Fade,
Flip,
Scale,
SlideFromLeft,
SlideFromRight,
SlideFromTop,
SlideFromBottom,
Turnstile
}
рдФрд░, рдкреГрд╖реНрда рдореЗрдВ рдирдП рдЧреБрдгреЛрдВ NavigationPage рдФрд░ рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкреГрд╖реНрда рд╕рдВрдХреНрд░рдордг рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
public static readonly BindableProperty TransitionTypeProperty =
BindableProperty.Create(nameof(TransitionType), typeof(NavigationTransitionType), typeof(NavigationPage), PageTransitionType.None,
BindingMode.TwoWay, null);
public NavigationTransitionType TransitionType
{
get { return (NavigationTransitionType)GetValue(TransitionTypeProperty); }
set { SetValue(TransitionTypeProperty, value); }
}
public static readonly BindableProperty TransitionDurationProperty =
BindableProperty.Create(nameof(TransitionDuration), typeof(double), typeof(NavigationPage), 500d,
BindingMode.TwoWay, null);
public double TransitionDuration
{
get { return (double)GetValue(TransitionDurationProperty); }
set { SetValue(TransitionDurationProperty, value); }
}
рджреВрд╕рд░реА рдУрд░, рд╣рдореЗрдВ рд╕рд╛рдЭрд╛ рддрддреНрд╡ рд╕рдВрдХреНрд░рдордг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реАрдХреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреБрдВрдЬреА рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдПрдХ рд╣реА рдЖрдЗрдЯрдо рдХреЛ _"рд▓рд┐рдВрдХ"_ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ View рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╕рдорд░реНрдерд┐рдд рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП TransitionTag рд╕рдВрд▓рдЧреНрди рд╕рдВрдкрддреНрддрд┐ рд╣реЛрдЧреА:
public static readonly BindableProperty TransitionTagProperty =
BindableProperty.CreateAttached("TransitionTag", typeof(int), typeof(Transition), 0,
propertyChanged: OnPropertyChanged);
рдЙрдкрдпреЛрдЧ рд╣реЛрдЧрд╛:
<Image Source="xamarin.jpg" TransitionTag="logo" WidthRequest="100" />
рд╕реНрд░реЛрдд рдкреГрд╖реНрда рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдЯреИрдЧ рдХрд░реЗрдВред
<Image Source="xamarin.jpg" TransitionTag="logo" WidthRequest="300" />
рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдЧрдВрддрд╡реНрдп рдкреГрд╖реНрда рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдЯреИрдЧ рдХрд░реЗрдВред
рдЖрдЗрдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
рдкреГрд╖реНрдареЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдирдореВрдирд╛:
<ContentPage
TransitionType=тАЬSlideFromBottomтАЭ
TransitionDuration="750" />
рд╕рд╛рдЭрд╛ рд╕рдВрдХреНрд░рдордг рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рдирдореВрдирд╛:
рдкреГрд╖реНрда 1:
<Image
Source="xamagon_preview.png"
TransitionTag="xamagon"/>
рдкреЗрдЬ 2:
<Image
Source="xamagon.png"
TransitionTag="xamagon"/>
TransitionTag
рдХрд╛ рдорд┐рд▓рд╛рди рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИредTransitionTag
рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрд╢рд╛рдпрдж рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдЬреЛ enum
рдмрдЬрд╛рдп рдПрдиреАрдореЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ?
рдХреБрдЫ ITransitionAnimation
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдПрдирд┐рдореЗрд╢рди рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдПред
рдФрд░ рдлреЛрдВрдЯ рдкрд░ NamedSize
рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдПрдирд┐рдореЗрд╢рди
рдЙрджрд╛рд╣рд░рдг:
<ContentPage
Transition=тАЬ{local:MyCustomTransition}"
TransitionDuration="750" />
рдпрд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд "рдирд╛рдорд┐рдд рд╕рдВрдХреНрд░рдордг"
<ContentPage
Transition=тАЬFade"
TransitionDuration="750" />
рд╕рд╛рдЭрд╛ рд╕рдВрдХреНрд░рдордгреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдЧреНрд░рд╣рджреГрд╢реНрдп) рд╕реЗ рд╕рдВрдХреНрд░рдордг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ "рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рдирдЯреИрдЧ" рд╕рдВрдкрддреНрддрд┐ рдЙрд╕ рджреГрд╢реНрдп рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдПрдирд┐рдореЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЫрд╡рд┐ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИ рд▓реЗрдХрд┐рди рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рдирдЯреИрдЧ рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: "ImageToTransition")ред
рдЬрдм рдЖрдк рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рдЯреИрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд░реЗрдВрдбрд░рд░ рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдХрд┐рд╕ рддрддреНрд╡ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ CollectionView рдореЗрдВ рдЖрдкрдХреА рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЯреИрдЧ рд╣реИ рддреЛ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдореЗрд░реА рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ TransitionGroup рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрд╡ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВред
рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдХреЛрдб рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИ (рдЯреИрдмрдбрдкреЗрдЬ/рдорд╛рд╕реНрдЯрд░рдкреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЪрд╛рдЗрд▓реНрдбрдлреНрд░реИрдЧрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЦреЛрд▓ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдареАрдХ рд╣реИ), рдЖрдИрдУрдПрд╕ рдореЗрдВ рднреА рдореИрдВ рдХреБрдЫ рд╣реИрдХреНрд╕ рдкрд░ рдореБрдХрджрдорд╛ рдХрд░рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЕрдЪреНрдЫрд╛ рдмрджрд▓рд╛рд╡ рд╣реЛ рд╕рдХреЗ рдЖрдХрд╛рд░ .
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдмреЗрд╣рддрд░ рджрд┐рдЦрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХреЛрд░ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдореИрдВ рдорджрдж рдХрд░рдиреЗ рдФрд░ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ
https://github.com/GiampaoloGabba/Xamarin.Plugin.SharedTransitions
рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдЕрдЧрд░ рдХреБрдЫ рдЧреБрдгреЛрдВ рдХреЛ рдореБрдЦреНрдп рдХреЛрд░ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдореЗрд░реЗ рдмрд╣реБрдд рд╕реЗ рдХреЛрдб рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
@felipebaltazar рдпрд╣ https://github.com/xamarin/Xamarin.Forms/issues/10773 рдореИрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдБрдЧрд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдХрд▓реНрдкрдирд╛ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗред
@GiampaoloGabba рдЗрд╕ рдПрдкреАрдЖрдИ рдкрд░ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ Xamarin.Forms рдореЗрдВ рд╣реИ, рддреЛ рд╣рдо рдкреАрдЖрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдореБрдЭреЗ рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рдЙрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдЗрд╕рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреА рд╣реИ рдФрд░ рдЖрдк рд╕рд╣реА рд╣реИрдВред рдПрдордПрдирдПрди, рд╣рдо рдЗрди рдорд╛рдорд▓реЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ ( TransitionGroup
), рдпрд╛ рд╢рд╛рдпрдж рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдпрджрд┐ рддрддреНрд╡ рдХрд╛ рдЕрднрд┐рднрд╛рд╡рдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рддреЛ рд╕рдореВрд╣ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдПрдВред
рдпрд╛ рд╢рд╛рдпрдж рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдпрджрд┐ рддрддреНрд╡ рдХрд╛ рдЕрднрд┐рднрд╛рд╡рдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рддреЛ рд╕рдореВрд╣ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдПрдВред
рдореИрдВрдиреЗ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдЧреНрд░рд╣рджреГрд╢реНрдп рдореЗрдВ рд╣рдо SelectedItem рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдореВрд╣реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╕рдВрдкрддреНрддрд┐ рдХреЛ "рдердкреНрдкрдбрд╝" рджреЗрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдерд╛ рдФрд░ рдлрд┐рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рджреЗрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдФрд░ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ :)
рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдореИрдВ рдпрд╣рд╛рдВ рдЖрдзрд╛рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЫреЛрдЯрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛ (рд╕рдВрдХреНрд░рдордг рдХреЛ рдХреИрд╕реЗ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕реЗ рдЖрдИрдУрдПрд╕ рдореЗрдВ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ рдФрд░ рдореБрдЭреЗ рд╕рдм рдХреБрдЫ рд╣рд╛рде рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдерд╛ , рдЬрдмрдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдЕрдЧрд░ рдЖрдк рдЯреИрдк рдХрд┐рдП рдЧрдП рдкреЗрдЬ рдФрд░ рдорд╛рд╕реНрдЯрд░рдбрд┐рдЯреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдмрдЪреНрдЪреЗ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддреЗ рд╣реИрдВ)
рдмрд╕ рдЕрдЧрд░ рдпрд╣рд╛рдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдФрд░ рдмреБрд░реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдЪреНрдЫреЗ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рдЬреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ, рдмрд╣реБрдд рдХреБрдЫ рд╣реЛрдЧрд╛ :)
рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ @GiampaoloGabba , рдзрдиреНрдпрд╡рд╛рдж!
@felipebaltazar рдпрд╣ TabView xamarin/Xamarin.Forms#10773 рдореЗрдВ рдХрд╕реНрдЯрдо рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдореИрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдБрдЧрд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдХрд▓реНрдкрдирд╛ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗред
рдмрдврд╝рд┐рдпрд╛ рд╣реИ!!!!
рдореИрдВрдиреЗ Xamarin.Forms.Skeleton
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдХреБрдЫ рдПрдирд┐рдореЗрд╢рди рдХрд┐рдП рд╣реИрдВ, рд╢рд╛рдпрдж рдпрд╣ рдирдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ... рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛...
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕рд╛рдЭрд╛ рд╕рдВрдХреНрд░рдордгреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдЧреНрд░рд╣рджреГрд╢реНрдп) рд╕реЗ рд╕рдВрдХреНрд░рдордг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ "рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рдирдЯреИрдЧ" рд╕рдВрдкрддреНрддрд┐ рдЙрд╕ рджреГрд╢реНрдп рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдПрдирд┐рдореЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЫрд╡рд┐ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИ рд▓реЗрдХрд┐рди рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рдирдЯреИрдЧ рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: "ImageToTransition")ред
рдЬрдм рдЖрдк рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рдЯреИрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд░реЗрдВрдбрд░рд░ рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдХрд┐рд╕ рддрддреНрд╡ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ CollectionView рдореЗрдВ рдЖрдкрдХреА рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЯреИрдЧ рд╣реИ рддреЛ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдореЗрд░реА рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ TransitionGroup рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрд╡ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВред
рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдХреЛрдб рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИ (рдЯреИрдмрдбрдкреЗрдЬ/рдорд╛рд╕реНрдЯрд░рдкреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЪрд╛рдЗрд▓реНрдбрдлреНрд░реИрдЧрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЦреЛрд▓ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдареАрдХ рд╣реИ), рдЖрдИрдУрдПрд╕ рдореЗрдВ рднреА рдореИрдВ рдХреБрдЫ рд╣реИрдХреНрд╕ рдкрд░ рдореБрдХрджрдорд╛ рдХрд░рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЕрдЪреНрдЫрд╛ рдмрджрд▓рд╛рд╡ рд╣реЛ рд╕рдХреЗ рдЖрдХрд╛рд░ .
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдмреЗрд╣рддрд░ рджрд┐рдЦрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХреЛрд░ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдореИрдВ рдорджрдж рдХрд░рдиреЗ рдФрд░ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ
https://github.com/GiampaoloGabba/Xamarin.Plugin.SharedTransitions