Maui: [рдХрд▓реНрдкрдирд╛] рд╕рдВрдХреНрд░рдордг

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдордИ 2020  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dotnet/maui

рдмрджрд▓рд╛рд╡

рдорд╛рдЙ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреВрд░реНрдг рдПрдирд┐рдореЗрд╢рди рдПрдкреАрдЖрдИ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдкреГрд╖реНрда рдкрд░ рдПрдХ рдЬреАрд╡рдВрдд рдФрд░ рддрд░рд▓ рд╕рд╛рдордЧреНрд░реА рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреГрд╖реНрдареЛрдВ рдХреЗ рдмреАрдЪ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдкрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?.

рдпрд╣ рдпреБрдХреНрддрд┐ рдПрдХ рдорд╛рдЙ рд╕рдВрдХреНрд░рдордг рдПрдкреАрдЖрдИ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд┐рднреЗрджрд┐рдд рд╕рдВрдХреНрд░рдордг рд╣реИрдВ:

  • рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рдВрдХреНрд░рдордг : рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╡рд┐рднрд┐рдиреНрди рдкреГрд╖реНрдареЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдФрд░ рдирд┐рдХрд╛рд╕ рд╕рдВрдХреНрд░рдордг рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╕рдВрдкреВрд░реНрдг рджреГрд╢реНрдп рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рдПрдирд┐рдореЗрдЯреЗрдб рдХрд░рддреЗ рд╣реИрдВред
  • рд╕рд╛рдЭрд╛ рддрддреНрд╡ рд╕рдВрдХреНрд░рдордг : рдХрдИ рдмрд╛рд░, рджреЛрдиреЛрдВ рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЗрди рд╕рд╛рдЭрд╛ рддрддреНрд╡реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдХреНрд░рдордг рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрдХреНрд░рдордгреЛрдВ рдХреЗ рдмреАрдЪ рдирд┐рд░рдВрддрд░рддрд╛ рдкрд░ рдЬреЛрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдРрдк рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддрд╛ рд╣реИред

shared_transitions

рдПрдкреАрдЖрдИ

рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рдВрдХреНрд░рдордг

рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рдВрдХреНрд░рдордгреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╕рдВрдХреНрд░рдордгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рдЧрдгрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

public enum NavigationTransitionType
{
    None,
    Fade,
    Flip,
    Scale,
    SlideFromLeft,
    SlideFromRight,
    SlideFromTop,
    SlideFromBottom,
    Turnstile
}

рдФрд░, рдкреГрд╖реНрда рдореЗрдВ рдирдП рдЧреБрдгреЛрдВ NavigationPage рдФрд░ рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкреГрд╖реНрда рд╕рдВрдХреНрд░рдордг рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • TransitionType : рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдВрдХреНрд░рдордг рдкреНрд░рднрд╛рд╡ред
  • TransitionDuration : рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рдЕрд╡рдзрд┐ред
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 рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХрдард┐рдирд╛рдИ: рдордзреНрдпрдо

animation ЁЯОм enhancement proposal-open

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕рд╛рдЭрд╛ рд╕рдВрдХреНрд░рдордгреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдЧреНрд░рд╣рджреГрд╢реНрдп) рд╕реЗ рд╕рдВрдХреНрд░рдордг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ "рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рдирдЯреИрдЧ" рд╕рдВрдкрддреНрддрд┐ рдЙрд╕ рджреГрд╢реНрдп рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдПрдирд┐рдореЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЫрд╡рд┐ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИ рд▓реЗрдХрд┐рди рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рдирдЯреИрдЧ рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: "ImageToTransition")ред

рдЬрдм рдЖрдк рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рдЯреИрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд░реЗрдВрдбрд░рд░ рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдХрд┐рд╕ рддрддреНрд╡ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ CollectionView рдореЗрдВ рдЖрдкрдХреА рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЯреИрдЧ рд╣реИ рддреЛ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдореЗрд░реА рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ TransitionGroup рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрд╡ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВред

рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдХреЛрдб рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИ (рдЯреИрдмрдбрдкреЗрдЬ/рдорд╛рд╕реНрдЯрд░рдкреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЪрд╛рдЗрд▓реНрдбрдлреНрд░реИрдЧрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЦреЛрд▓ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдареАрдХ рд╣реИ), рдЖрдИрдУрдПрд╕ рдореЗрдВ рднреА рдореИрдВ рдХреБрдЫ рд╣реИрдХреНрд╕ рдкрд░ рдореБрдХрджрдорд╛ рдХрд░рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЕрдЪреНрдЫрд╛ рдмрджрд▓рд╛рд╡ рд╣реЛ рд╕рдХреЗ рдЖрдХрд╛рд░ .

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдмреЗрд╣рддрд░ рджрд┐рдЦрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХреЛрд░ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдореИрдВ рдорджрдж рдХрд░рдиреЗ рдФрд░ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ
https://github.com/GiampaoloGabba/Xamarin.Plugin.SharedTransitions

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕реБрдЭрд╛рд╡

рд╢рд╛рдпрдж рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдЬреЛ 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 рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдХреБрдЫ рдПрдирд┐рдореЗрд╢рди рдХрд┐рдП рд╣реИрдВ, рд╢рд╛рдпрдж рдпрд╣ рдирдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ... рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛...

https://github.com/HorusSoftwareUY/Xamarin.Forms.Skeleton

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ghost picture ghost  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

4creators picture 4creators  ┬╖  31рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Suplanus picture Suplanus  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

UriHerrera picture UriHerrera  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Joshua-Ashton picture Joshua-Ashton  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ