Xamarin.forms: Forms3.5์˜ ListView์—์„œ ๋ ˆ์ด๋ธ” ๋ ˆ์ด์•„์›ƒ ๋ฌธ์ œ

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

๋ฒ„๊ทธ ๋ณด๊ณ ์„œ ๋ชจ๋ฒ” ์‚ฌ๋ก€ : https://github.com/xamarin/Xamarin.Forms/wiki/Submitting-Issues

๊ธฐ์ˆ 

ListView์˜ ๋ ˆ์ด๋ธ”์€ Android์—์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ ˆ์ด์•„์›ƒ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. iOS๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

์žฌํ˜„ ๋‹จ๊ณ„

  1. ๊ทธ๋Ÿฐ xaml
    ```




    ์—ฌ๋ฐฑ = "20,0,0,0"
    ShowLabel = "true"
    Checked = "{๋ฐ”์ธ๋”ฉ ํ™•์ธ}"
    OnImg = "checked_checkbox.png"
    OffImg = "unchecked_checkbox.png"
    Text = "{์ œ๋ณธ ๋‹จ์–ด}"/>



2. the CheckBox code like that:
public CheckBox() {
        this.TapCmd = new Command(() => {
            this.Checked = !this.Checked;

            if (this.CheckChanged != null)
                this.CheckChanged.Invoke(this, new EventArgs());

            if (this.CheckChangedCmd != null && this.CheckChangedCmd.CanExecute(this.Checked))
                this.CheckChangedCmd.Execute(this.Checked);
        });


        StackLayout stackLayout = new StackLayout {
            Orientation = StackOrientation.Horizontal
        };


        TapBinder.SetCmd(stackLayout, this.TapCmd);
        this.Content = stackLayout;

        this.Label = new Label() {
            BackgroundColor = Color.Red,
            BindingContext = this,
            VerticalTextAlignment = TextAlignment.Center,
            HorizontalOptions = LayoutOptions.StartAndExpand
        };
        this.Label.SetBinding(Label.TextProperty, "Text");
        this.Label.SetBinding(Label.IsVisibleProperty, "ShowLabel");

        this.Icon = new Image() {
            WidthRequest = this.Size,
            HeightRequest = this.Size,
            Source = this.OffImg
        };
        stackLayout.Children.Add(this.Icon);
        stackLayout.Children.Add(this.Label);

    }

```

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

๋ ˆ์ด๋ธ”์˜ ํ…์ŠคํŠธ๋Š” ์ •์ƒ์ ์œผ๋กœ ํ‘œ์‹œ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™

ListView๋ฅผ ์œ„ ๋˜๋Š” ์•„๋ž˜๋กœ ์ด๋™ํ•  ๋•Œ ์ผ๋ถ€ ๋ ˆ์ด๋ธ”์˜ ํ…์ŠคํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ •๋ณด

  • ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๋ฒ„์ „ :

=== Mac ์šฉ Visual Studio ์ปค๋ฎค๋‹ˆํ‹ฐ 2017 ===

๋ฒ„์ „ 7.7.4 (๋นŒ๋“œ 1)
์„ค์น˜ UUID : 4e60959a-758f-48ce-ae6d-26e15276ea83
GTK + 2.24.23 (๋กค๋ฆฌ ํ…Œ๋งˆ)
Xamarin.Mac 4.4.1.178 (๋งˆ์Šคํ„ฐ / eeaeb7e6)

Package version: 516000221

=== ๋ชจ๋…ธ ํ”„๋ ˆ์ž„ ์›Œํฌ MDK ===

์‹คํ–‰ ์‹œ๊ฐ„:
Mono 5.16.0.221 (2018-06 / b63e5378e38) (64 ๋น„ํŠธ)
ํŒจํ‚ค์ง€ ๋ฒ„์ „ : 516000221

=== NuGet ===

๋ฒ„์ „ : 4.8.0.5385

=== .NET Core ===

๋Ÿฐํƒ€์ž„ : / usr / local / share / dotnet / dotnet
๋Ÿฐํƒ€์ž„ ๋ฒ„์ „ :
2.1.8
2.1.7
2.1.2
2.1.1
2.0.5
2.0.0
1.1.1
1.0.4
SDK : /usr/local/share/dotnet/sdk/2.1.504/Sdks
SDK ๋ฒ„์ „ :
2.1.504
2.1.503
2.1.302
2.1.301
2.1.4
2.0.0
1.0.3
MSBuild SDK : /Library/Frameworks/Mono.framework/Versions/5.16.0/lib/mono/msbuild/15.0/bin/Sdks

=== Xamarin.Mac ===

๋ฒ„์ „ : 5.2.1.15 (Visual Studio ์ปค๋ฎค๋‹ˆํ‹ฐ)
ํ•ด์‹œ : d60abd198
๋ถ„๊ธฐ:
๋นŒ๋“œ ๋‚ ์งœ : 2019-02-01 12 : 23 : 30-0500

=== Xamarin.Android ===

๋ฒ„์ „ : 9.1.8.0 (Visual Studio ์ปค๋ฎค๋‹ˆํ‹ฐ)
์•ˆ๋“œ๋กœ์ด๋“œ SDK : / Users / huangboru / myfile / sdk
์ง€์›๋˜๋Š” Android ๋ฒ„์ „ :
4.2 (API ๋ ˆ๋ฒจ 17)
4.4 (API ๋ ˆ๋ฒจ 19)
5.1 (API ๋ ˆ๋ฒจ 22)
6.0 (API ๋ ˆ๋ฒจ 23)
7.0 (API ๋ ˆ๋ฒจ 24)
7.1 (API ๋ ˆ๋ฒจ 25)
8.0 (API ๋ ˆ๋ฒจ 26)
8.1 (API ๋ ˆ๋ฒจ 27)

SDK ๋„๊ตฌ ๋ฒ„์ „ : 26.1.1
SDK ํ”Œ๋žซํผ ๋„๊ตฌ ๋ฒ„์ „ : 28.0.0
SDK ๋นŒ๋“œ ๋„๊ตฌ ๋ฒ„์ „ : 28.0.3

=== ๋งˆ์ดํฌ๋กœ ์†Œํ”„ํŠธ ๋ชจ๋ฐ”์ผ OpenJDK ===

์ž๋ฐ” SDK : /Users/huangboru/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_1.8.0.9
openjdk ๋ฒ„์ „ "1.8.0-9"
OpenJDK ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ (๋นŒ๋“œ 1.8.0-9-microsoft-b00)
OpenJDK 64 ๋น„ํŠธ ์„œ๋ฒ„ VM (๋นŒ๋“œ 25.71-b00, ํ˜ผํ•ฉ ๋ชจ๋“œ)

Android Designer EPL ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/xamarin/AndroidDesigner.EPL

=== ๋นŒ๋“œ ์ •๋ณด ===

๋ฆด๋ฆฌ์Šค ID : 707040001
Git ๊ฐœ์ • : 2a4679454f31c8bb887cfd181ea133c9149d3cad
๋นŒ๋“œ ๋‚ ์งœ : 2019-01-30 16 : 18 : 21 + 00
๋นŒ๋“œ ๋ธŒ๋žœ์น˜ : ๋ฆด๋ฆฌ์Šค -7.7.4
Xamarin ํ™•์žฅ : c8b4305fd4c60b9c25947072eb150fdc3a5aa2b5

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


droid-mainactivity-02172019185656

Label์˜ backgroundColor๋ฅผ ์„ค์ •ํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ Label์˜ ์ž˜๋ชป๋œ ๋ ˆ์ด์•„์›ƒ ๋•Œ๋ฌธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

droid-mainactivity-02172019193816

๋ณต์ œ ๋งํฌ

๋ณต์ œ ์‚ฌ๋ก€์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์—…๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.
listview Android needs-info โ“ needs-repro โ” bug

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

Xamarin.Forms ๋ฒ„์ „์„ 3.5.169047๋กœ ์—…๋ฐ์ดํŠธํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

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

@suihanhbr ์ด ๋ฌธ์ œ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ƒ˜ํ”Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒจ๋ถ€ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋‹ค์Œ์€ ์ƒ˜ํ”Œ์ž…๋‹ˆ๋‹ค.
TestLabelProblem.zip

์ด๊ฒƒ์ด ์ฒซ ๋ฒˆ์งธ UI์ž…๋‹ˆ๋‹ค. ํ…์ŠคํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
screenshot_2019-02-20-10-10-28-963_com suihan testlabelproblem

listView๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๋น ๋ฅด๊ฒŒ ์Šคํฌ๋กคํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

screenshot_2019-02-20-10-10-42-816_com suihan testlabelproblem

๋ฟก๋ฟก

Xamarin.Forms ๋ฒ„์ „์„ 3.5.169047๋กœ ์—…๋ฐ์ดํŠธํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

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