Xamarin.forms: [๋ฒ„๊ทธ] CarouselView๋Š” ๋‹ค๋ฅธ ๋ ˆ์ด์•„์›ƒ์„ ํ‘ธ์‹œํ•˜๊ณ  ๋ชจ๋“  ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 11์›” 24์ผ  ยท  17์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: xamarin/Xamarin.Forms

๊ธฐ์ˆ 

ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ CarouselView๋Š” ๋ ˆ์ด์•„์›ƒ์˜ ๋ชจ๋“  ์ˆ˜์ง ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋‚ด ์ฝ˜ํ…์ธ ์— ๋งž๊ฒŒ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ฝ˜ํ…์ธ ์˜ ๋†’์ด ๋˜๋Š” ๋„ˆ๋น„์— ๋งž๊ฒŒ ํฌ๊ธฐ๋ฅผ ์กฐ์ • ํ•ด์ฃผ์„ธ์š”.

<StackLayout Margin="15">
            <Frame BackgroundColor="White"
                   Padding="10"
                   BorderColor="Black"
                   CornerRadius="0">
                <CarouselView>
                    <CarouselView.ItemsSource>
                        <x:Array Type="{x:Type x:String}">
                            <x:String>rei_01.jpg</x:String>
                            <x:String>rei_02.jpg</x:String>
                            <x:String>rei_03.jpg</x:String>
                            <x:String>rei_04.jpg</x:String>
                        </x:Array>
                    </CarouselView.ItemsSource>
                    <CarouselView.ItemTemplate>
                        <DataTemplate>
                            <Image Source="{Binding .}"/>
                        </DataTemplate>
                    </CarouselView.ItemTemplate>
                </CarouselView>
            </Frame>

        </StackLayout>

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘

CarouselView ํฌ๊ธฐ๋ฅผ ๋‚ด ์ฝ˜ํ…์ธ ์— ๋งž๊ฒŒ ์กฐ์ •ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ํ™”๋ฉด ํฌ๊ธฐ์—์„œ ์ผ๊ด€๋œ ๋ ˆ์ด์•„์›ƒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™

CarouselView๋Š” ๋ ˆ์ด์•„์›ƒ์˜ ๋ชจ๋“  ๊ณต๊ฐ„์„ ์†Œ๋น„ํ•˜๋ฉฐ ๋‹ค๋ฅธ ๋ ˆ์ด์•„์›ƒ์„๋ณด๊ธฐ ๋ฐ–์œผ๋กœ ๋ฐ€์–ด๋ƒ…๋‹ˆ๋‹ค. ์ด ํ™”๋ฉด์—์„œ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์œผ๋ ค๋ฉด ๋†’์ด๋ฅผ ์„ค์ •ํ•ด์•ผํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ํฌ๊ธฐ์˜ ํ™”๋ฉด์—์„œ๋Š” ์ž˜๋ชป ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ •๋ณด

  • ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๋ฒ„์ „ : 4.4.0-pre2
  • ํ”Œ๋žซํผ ๋Œ€์ƒ ํ”„๋ ˆ์ž„ ์›Œํฌ :

    • ์•ˆ๋“œ๋กœ์ด๋“œ : 10

์Šคํฌ๋ฆฐ ์ƒท

๋ชจ๋“  ์†Œ๋น„ ๋†’์ด :

bug-cv-allheight

๊ณ ์ • ๋†’์ด (์ถ”์ธก) :

bug-cv-fixedheight

๋ณต์ œ ๋งํฌ

https://github.com/davidortinau/CarouselGallery/blob/master/CarouselGallery/CarouselGallery/Views/REIPage.xaml

carouselview collectionview blocker 3 high impact Android bug

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

ํ•œํŽธ ์ €๋Š” ์ด์™€ ๊ฐ™์€ ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ฝ”๋“œ๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ์ž‘์„ฑํ•˜์—ฌ ์ „์ฒด ํ”Œ๋žซํผ ๊ฐ„ ์ด์ ์ด ๋…น์•„ ๋‚ด๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทผ์‹ฌ๊ฑฐ๋ฆฌ.

๋ชจ๋“  17 ๋Œ“๊ธ€

์ด๊ฒƒ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์šฉ์— ๋งž๊ฒŒ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ํ•ญ์ƒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ „์ฒด ๋†’์ด๋ฅผ ์ฐจ์ง€ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Android์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

iOS์—์„œ๋Š” ๋ชจ๋‘ NRE์ด๋ฉฐ ์Šคํƒ ์ถ”์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์ด๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. iOS ์˜ค๋ฅ˜๋Š” ์…ธ ๋ฌธ์ œ์— ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.

/ Users / builder / jenkins / workspace / xamarin-macios / xamarin-macios / external / mono์˜ System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object [] ๋งค๊ฐœ ๋ณ€์ˆ˜, System.Boolean wrapExceptions) [0x00018]์—์„œ /mcs/class/corlib/System.Reflection/RuntimeMethodInfo.cs:944
/ Users / builder / jenkins / workspace / xamarin-macios / xamarin-macios / external / mono / mcs / class / corlib / ReferenceSources /์˜ System.RuntimeType.CreateInstanceMono (System.Boolean nonPublic, System.Boolean wrapExceptions) [0x00095]์—์„œ RuntimeType.cs : 185
/ Users / builder / jenkins / workspace / xamarin-macios / xamarin-macios / external /์˜ System.RuntimeType.CreateInstanceSlow (System.Boolean publicOnly, System.Boolean wrapExceptions, System.Boolean skipCheckThis, System.Boolean fillCache) [0x00009]์—์„œ mono / mcs / class / corlib / ReferenceSources / RuntimeType.cs : 155
/ Users / builder / jenkins / workspace / xamarin-macios์˜ System.RuntimeType.CreateInstanceDefaultCtor (System.Boolean publicOnly, System.Boolean skipCheckThis, System.Boolean fillCache, System.Boolean wrapExceptions, System.Threading.StackCrawlMark & โ€‹โ€‹stackMark) [0x00027]์—์„œ /xamarin-macios/external/mono/mcs/class/referencesource/mscorlib/system/rttype.cs:5770
/ Users / builder / jenkins / workspace / xamarin-macios / xamarin-macios / external / mono / mcs / class์˜ System.Activator.CreateInstance (System.Type ์œ ํ˜•, System.Boolean nonPublic, System.Boolean wrapExceptions) [0x00039]์—์„œ /referencesource/mscorlib/system/activator.cs:206
/ Users / builder / jenkins / workspace / xamarin-macios / xamarin-macios / external / mono / mcs / class / referencesource / mscorlib /์˜ System.Activator.CreateInstance (System.Type ํ˜•์‹, System.Boolean nonPublic) [0x00000]์—์„œ system / activator.cs : 190
/Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/external/mono/mcs/class/referencesource/mscorlib/system/activator.cs์˜ System.Activator.CreateInstance (System.Type ์œ ํ˜•) [0x00000]์—์„œ : 134
at Xamarin.Forms.ElementTemplate + <> c__DisplayClass4_0. <. ctor> b__0 () [0x00000] in d : \ agent \ 1 \ s \ Xamarin.Forms.Core \ ElementTemplate.cs : 26
d : \ agent \ 1 \ s \ Xamarin.Forms.Core \ ElementTemplate.cs : 82์˜ Xamarin.Forms.ElementTemplate.CreateContent () [0x00031]์—์„œ
Xamarin.Forms.Internals.DataTemplateExtensions.CreateContent (Xamarin.Forms.DataTemplate self, System.Object ํ•ญ๋ชฉ, Xamarin.Forms.BindableObject ์ปจํ…Œ์ด๋„ˆ) [0x00001] d : \ agent \ 1 \ s \ Xamarin.Forms.CoreDataTemplateExtensions.cs : 19
Xamarin.Forms.ShellContent.Xamarin.Forms.IShellContentController.GetOrCreateContent () [0x00036]์—์„œ d : \ agent \ 1 \ s \ Xamarin.Forms.CoreShellShellContent.cs : 61
d : \ agent \ 1 \ s \ Xamarin.Forms.Platform.iOS \ RenderersShellSectionRootRenderer.cs : 145์˜ Xamarin.Forms.Platform.iOS.ShellSectionRootRenderer.LoadRenderers () [0x00024]์—์„œ
at Xamarin.Forms.Platform.iOS.ShellSectionRootRenderer.ViewDidLoad () [0x0003b] in d : \ agent \ 1 \ s \ Xamarin.Forms.Platform.iOS \ RenderersShellSectionRootRenderer.cs : 63
(๋ž˜ํผ์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๊ด€๋ฆฌ ๋จ) UIKit.UIApplication.UIApplicationMain (int, string [], intptr, intptr)
/Library/Frameworks/Xamarin.iOS.framework/Versions/13.8.2.2/src/Xamarin.iOS์˜ UIKit.UIApplication.Main (System.String [] args, System.IntPtr principal, System.IntPtr delegate) [0x00005]์—์„œ /UIKit/UIApplication.cs:86
/Library/Frameworks/Xamarin.iOS.framework/Versions/13.8.2.2/src/Xamarin.iOS์˜ UIKit.UIApplication.Main (System.String [] args, System.String principalClassName, System.String delegateClassName) [0x0000e]์—์„œ /UIKit/UIApplication.cs:65
CarouselGallery.iOS.Application.Main (System.String [] args) [0x00001] in /Users/jfversluis/Downloads/CarouselGallery-master/CarouselGallery/CarouselGallery.iOS/Main.cs:17

๋ฟก๋ฟก
ํ•‘. ์ด๊ฒƒ์— ๋Œ€ํ•œ ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด ๋ฒ„๊ทธ๋กœ CarouselView๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@ez ์™€ ์ด์•ผ๊ธฐ๋ฅผ

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์Šคํƒ ๋ ˆ์ด์•„์›ƒ์— ๋„ฃ์œผ๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์Šคํƒ ๋ ˆ์ด์•„์›ƒ์— ๋„ฃ์œผ๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ @davidortinau ์˜ ์ƒ˜ํ”Œ ์ฝ”๋“œ์—์„œ CarouselView๋Š” ์ด๋ฏธ StackLayout ์•ˆ์— ๋ฐฐ์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

@samhouts ์ด๊ฒƒ์— ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜์—๊ฒŒ ์ƒ๋‹นํžˆ ํฐ ๋ฌธ์ œ atm
92681524_158411695451139_3418474344739766272_n (1)

์ด๊ฒƒ์— ๋Œ€ํ•œ ์ˆ˜์ •๋„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

CollectionView์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ๊ณต๊ฐ„ ๋ฌธ์ œ๊ฐ€ ๋™์‹œ์— ํ•ด๊ฒฐ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ CollectionView๋ฅผ ํฌํ•จํ•˜๋Š” ๋‚ด ๋ ˆ์ด์•„์›ƒ์ด ์˜ˆ์ƒ๋Œ€๋กœ ๋ ˆ์ด์•„์›ƒ๋˜์ง€ ์•Š์€ ์ด์œ ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค.

2019 ๋…„ 11 ์›” 24 ์ผ ์˜คํ”ˆ ... ๋‰ด์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฟก๋ฟก
์ด ๋ฒ„๊ทธ๋กœ ์ธํ•ด CarouselView๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋ ๊นŒ์š”?

Xamarin ํŒ€, ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ํ˜„์žฌ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” 2019 ๋…„ ๋ง๋ถ€ํ„ฐ ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๊ณ ์žฅ์ด ๋‚˜๊ณ  ๊ณ ์ณ์ง€์ง€ ์•Š์„ ๊ฒฝ์šฐ ๊ถ๊ทน์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ผ์— ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๋„๋กํ•˜๋Š” ๋Œ€์‹  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์•Œ๋ฆฌ๋„๋ก ํ๊ธฐํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋“ค์ด ์ž‘๋™ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ณ ์ณ์งˆ ๊ฒƒ์ด๋ผ๋Š” ๊ธฐ๋Œ€๊ฐ€ ๋  ๊ฒƒ์ด๋ฏ€๋กœ ์“ธ๋ชจ์—†๋Š” ๊ฒƒ์ด ๋” ์ข‹์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌ!

๊ทธ๋ƒฅ ๊ทธ๋ ‡๊ฒŒ ๋„ˆ๋„ ์•Œ๋‹ค์‹œํ”ผ, ๋‹น์‹ ์€ ์ ˆ๋Œ€์ ์œผ๋กœ CollectionView๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ์š”์†Œ ๋ทฐ์˜ ํฌ๊ธฐ ๋ณ€ํ™”์— ๊ตฌ๋…์ด ์ ์ ˆํ•˜๊ฒŒ ์ˆ˜๋™์œผ๋กœ ์„ค์ • CollectionView์˜ ๋†’์ด์— ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ๋งค์šฐ ๋”๋Ÿฌ์šด ํ•ดํ‚น. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋„ ์ด๊ฒƒ์ด ์ƒ์ž์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. :)

ํ•œํŽธ ์ €๋Š” ์ด์™€ ๊ฐ™์€ ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ฝ”๋“œ๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ์ž‘์„ฑํ•˜์—ฌ ์ „์ฒด ํ”Œ๋žซํผ ๊ฐ„ ์ด์ ์ด ๋…น์•„ ๋‚ด๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทผ์‹ฌ๊ฑฐ๋ฆฌ.

์ด๊ฒƒ์— ๋Œ€ํ•œ ๋ง์€? CollectionView ๋˜๋Š” CarouselView๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋งˆ๋‹ค์ด ๋ฌธ์ œ๋กœ ์ธํ•ด ํ™”๋ฅผ ๋‚ด๊ณ  ๊ณ ๊ฐ ๋ฆฌํ”ผํ„ฐ ๋˜๋Š” ๋ฐ”์ธ๋”ฉ ๊ฐ€๋Šฅํ•œ ๋ ˆ์ด์•„์›ƒ์— ์˜์กดํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ CollectionView๊ฐ€ Preview์—์„œ ๋ฒ—์–ด ๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ๋†’์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌ๋ฐ›์ง€ ๋ชปํ•œ ๊ฒƒ์€ ์‹ค๋ง ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜์„ธ์š”. ์ด๊ฒƒ์€ ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ํŽ˜์ด์ง€์— ์ปฌ๋ ‰์…˜ ๋ทฐ์™€ ์บ ๋Ÿฌ์…€ ๋ทฐ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด๊ฒƒ์€ ์ €๋ฅผ ์ฃฝ์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ..

๊ทธ๋ž˜ ๋‚˜๋„ ์—ฌ๊ธฐ์— ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์š”

๋ˆ„๊ตฌ๋“ ์ง€์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰