рд╣рдордиреЗ рдЕрдкрдиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХреА, рдЬреЛ рд╣рд░ рд╕рд╛рд▓ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛: "рд╣рдо рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдпрд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╣рд┐рдВрдбреЛрд▓рд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред" рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рдирдпрд╛ рдирд┐рдпрдВрддреНрд░рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреГрдкрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред Xamarin рдореЗрдВ
CarouselView
ред рдХреАрдбрд╝реЗ 4.4.0ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдПрдХ рд╣рд┐рдВрдбреЛрд▓рд╛ рдХреЗ рд╕рд╛рде рдкреГрд╖реНрдареЛрдВ рдФрд░ рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
IndicatorView
рднреА рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВред рд╕рд╛рде рд╣реА рд╕рд╛рде
CollectionView
рдореЗрдВ рдХрд┐рд╕реА рднреА рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
SwipeView
ред рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП GIF рдПрдирд┐рдореЗрд╢рди рдХреЗ рдирдП рд╕рдорд░реНрдерди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд┐рдирд╛ рд╣рд┐рдВрдбреЛрд▓рд╛ рд╡рд┐рд╖рдп рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рд╕реБрд╡рд┐рдзрд╛рдПрдБ Xamarin.Forms 4.4
рдЬреАрдЖрдИрдПрдл рдПрдиреАрдореЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдПрдиреАрдореЗрд╢рди рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдФрд░ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ, рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдпрд╛ рд╡рд┐рд╡рд░рдгреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ред рдмреЗрд╢рдХ, рдпрд╣ рдХреИрдЯ рдЧрд┐рдл рдХреЗ рд▓рд┐рдП рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред
Image
рдХреЛ рдЖрдкрдХреЛ рдСрдЯреЛрдкреНрд▓реЗ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
IsAnimationPlaying
рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдиреАрдореЗрд╢рди рд▓реВрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЬрд╛рдПрдЧрд╛ред рдПрдиреАрдореЗрд╢рди рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП,
IsAnimationPlaying
рдХреЛ рдЧрд▓рдд рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред

рдпрд╣реА рд╣реИ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдирд┐рдореЗрд╢рди рд╣реИрдВ! рдпрд╣ рдЫреЛрдЯреА рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡реЗ рдЬреЛ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рд╣реИрдВред GIF рдЗрдореЗрдЬ рд▓реВрдкрд┐рдВрдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдмреЗрд╣рддрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП Android рдкрд░ рддреЗрдЬрд╝ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
CarouselView рдФрд░ IndicatorView
CollectionView
рдХреЗ рд╕рдорд╛рди рдореВрд▓ рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдирд┐рд░реНрдорд┐рдд, рдирдпрд╛
CarouselView
рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдмрд╣реБрдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд╣рд┐рдВрдбреЛрд▓рд╛ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдк рдХреНрд╖реИрддрд┐рдЬ рдпрд╛ рд▓рдВрдмрд╡рдд рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВред
CollectionView
рд╕рд╛рде рдЖрдкрдХреЛ рдорд┐рд▓рддрд╛ рд╣реИ:
- ItemsLayout
- ItemsSource
- ItemTemplate
- EmptyTemplate

<CarouselView HeightRequest="160"> <CarouselView.ItemsSource> <x:Array Type="{x:Type x:String}"> <x:String>h01.jpg</x:String> <x:String>h02.jpg</x:String> <x:String>h03.jpg</x:String> <x:String>h04.jpg</x:String> </x:Array> </CarouselView.ItemsSource> <CarouselView.ItemTemplate> <DataTemplate> <Image Source="{Binding .}"/> </DataTemplate> </CarouselView.ItemTemplate> </CarouselView>
рдЖрдкрдХреЛ рдЪреАрдЬреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣рд┐рдВрдбреЛрд▓рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреБрдг рднреА рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдФрд░ рдЕрдЧрд▓реЗ рддрддреНрд╡реЛрдВ рдХреЛ рдЭрд╛рдВрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред

<CarouselView PeekAreaInsets="50" ...>
рдЙрдиреНрдирдд рдпреБрдХреНрддрд┐: рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЖрдк рдпрд╣ рднреА рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдФрд░ рдЕрдЧрд▓реЗ рддрддреНрд╡реЛрдВ рдХреЛ рдЫреЛрдЯрд╛ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╕рдордп рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдЗрд╕реЗ рдЕрднреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рд╣рдо 4.5 рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп рд░рд╛рдЬреНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
IndicatorView
рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдХрд╣реАрдВ рднреА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдирд╛рдо рд╕реЗ
CarouselView
рд╕рд╛рде рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
<CarouselView x:Name="walletCarousel"> // implementation here </CarouselView> <IndicatorView IndicatorColor="LightGray" SelectedIndicatorColor="Black" IndicatorSize="10" HorizontalOptions="Center" IndicatorView.ItemsSourceBy="walletCarousel"/>

рд╕рднреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЖрдк
CarouselView
рдФрд░
IndicatorView
рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ,
рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВред
рдиреЛрдЯ: рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ NuGet
Xamarin.Forms.CarouselView (рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди) рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЕрдм рд░рд┐рд▓реАрдЬрд╝ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк NuGet рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдб рдирд╛рдо рд╕реНрдерд╛рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдордиреЗ рдПрдкреАрдЖрдИ рдореЗрдВ рд╕реНрдерд┐рд░рддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
GitHubSwipeView
рдпрд╣ рдирд┐рдпрдВрддреНрд░рдг рдЖрдорддреМрд░ рдкрд░ рддрддреНрд╡реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдмрдЯрди рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рджрд┐рд╢рд╛ рдореЗрдВ рд╕реНрд╡рд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╕рдВрдкрд╛рджрди рдпрд╛ рд╣рдЯрд╛рдирд╛ред рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓рдкреЗрдЯреЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рд╡реНрдпрд╡рд╣рд╛рд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ,
SwipeItem
рд╢реАрд░реНрд╖рдХ рдФрд░ рдЖрдЗрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдХрдорд╛рдВрдб рдпрд╛
SwipeItem
рд╣реИрдВрдбрд▓рд░ рднреАред рдпрджрд┐ рдЖрдк рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

<SwipeView> <SwipeView.RightItems> <SwipeItems Mode="Execute"> <SwipeItem Text="Favourite" Command="{Binding Favourite}"> <SwipeItem.Icon> <FontIconSource Glyph="юЭН"/> </SwipeItem.Icon> </SwipeItem> </SwipeItems> </SwipeView.LeftItems> <!-- Swipeable content --> <Frame> // content here </Frame> </SwipeView>
рдЙрдкрд░реЛрдХреНрдд
рдЙрджрд╛рд╣рд░рдг рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╣рдорд╛рд░реА рдкреНрд░рддрд┐рднрд╛рд╢рд╛рд▓реА рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдп рдЬреЗрд╡рд┐рдпрд░ рд╕реБрдЖрд░реЗрдЬрд╝ рд░реБрдЗрдЬрд╝
рдХреЗ рдмреНрд▓реЙрдЧ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдЖ рдерд╛ ред
рдЖрдк
рдПрдВрдбреНрд░реЙрдЗрдб рдФрд░
рдЖрдИрдУрдПрд╕ рдкрд░ рд╕реНрд╡рд╛рдЗрдк рдореЛрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
SwipeView
рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП
SwipeView
рджреЗрдЦреЗрдВред
Xamarin.Forms 4.4 рдХреЗ рд╕рд╛рде рдЖрдЬ рд╣реА рд╢реБрд░реВ рдХрд░реЗрдВ
Xamarin.Forms 4.4 рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ NuGet рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдпрд╛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ Xamarin.Forms рдФрд░ Xamarin.Essentials рдЕрдм Android 28.0.0.3 рд╕рдорд░реНрдерди рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ, рдЬреЛ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рд╕рдкреЛрд░реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ
SetFlags
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирдП рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦреЗрдВред рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ
App.xaml.cs
рдирд┐рдореНрди рдЬреЛрдбрд╝реЗрдВ:
public App() { InitializeComponent(); Device.SetFlags(new[] { "CarouselView_Experimental", "IndicatorView_Experimental", "SwipeView_Experimental" } ); MainPage = new AppShell(); }