Xamarin.forms: [๋ฒ„๊ทธ] RadioButton์ด Android์—์„œ ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์Œ

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

๊ธฐ์ˆ 

Xamarin.Forms 4.8๋กœ ์—…๋ฐ์ดํŠธ ํ•œ ํ›„ ๋ผ๋””์˜ค ๋‹จ์ถ”๊ฐ€ ๋” ์ด์ƒ Android์—์„œ ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ฝ”๋“œ๊ฐ€ 4.7์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

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

  1. ์ƒˆ Xamarin.Forms ๋นˆ ํŽ˜์ด์ง€ ์•ฑ ๋งŒ๋“ค๊ธฐ
  2. ๊ธฐ๋ณธ ํŽ˜์ด์ง€์— ๋ผ๋””์˜ค ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    <RadioButton Margin="5" Text="Test" />
  3. Xamarin.Forms NuGet ํŒจํ‚ค์ง€๊ฐ€ 4.8.0.1269๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  Android์—์„œ ์•ฑ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

๋ผ๋””์˜ค ๋ฒ„ํŠผ์€ ์˜ค๋ฅธ์ชฝ์— "Test"๋ผ๋Š” ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™

๋ผ๋””์˜ค ๋ฒ„ํŠผ์˜ ์›๋งŒ ํ…์ŠคํŠธ์—†์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ •๋ณด

  • ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๋ฒ„์ „ : 4.8.0.1269
  • ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ๋ ค์ง„ ์–‘ํ˜ธํ•œ ๋ฒ„์ „ : 4.7.0.1260
  • IDE : Visual Studio 2019
  • ํ”Œ๋žซํผ ๋Œ€์ƒ ํ”„๋ ˆ์ž„ ์›Œํฌ :

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

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

Screenshot_20200807-233203

unverified bug

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

์ง€๊ธˆ์€ ๋‹ซ์Šต๋‹ˆ๋‹ค.

RadioButton์€ 5.0.0์—์„œ ํฐ ๋ณ€ํ™”๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

11628

์ƒˆ๋กœ์šด ๊ฒƒ์„ ๋งŒ๋“ค์ง€ ๋ง๊ณ  ๊ธฐ์กด ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•˜์‹ญ์‹œ์˜ค. ๋ถ€๋””!

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

์ง€๊ธˆ์€ ๋‹ซ์Šต๋‹ˆ๋‹ค.

RadioButton์€ 5.0.0์—์„œ ํฐ ๋ณ€ํ™”๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/xamarin/Xamarin.Forms/pull/11628

์•„ ... ์ ์–ด๋„ ๊ทธ๋•Œ๊นŒ์ง€๋Š” ์‰ฌ์šด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. RadioButton์„ ๋ ˆ์ด๋ธ”๊ณผ ํ•จ๊ป˜ ์ˆ˜ํ‰ ์Šคํƒ ํŒจ๋„์— ๋†“๊ณ  ์„ ํƒ์ ์œผ๋กœ TapGestureRecognizer๋ฅผ ๋ ˆ์ด๋ธ”์— ์ถ”๊ฐ€ํ•˜์—ฌ ํƒญํ•˜๋ฉด ๋ผ๋””์˜ค ๋ฒ„ํŠผ ๊ฐ’๋„ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ๋˜ํ•œ 4.8 ๋ฒ„์ „์˜ xamarin ์–‘์‹์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•œ ํ›„ ๋ผ๋””์˜ค ๋ฒ„ํŠผ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์นœ์ ˆํ•˜๊ฒŒ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.
image

@ kamalkumar1 ๋ผ๋””์˜ค ๋ฒ„ํŠผ์ด ์ž‘๋™ํ•˜์ง€๋งŒ Android์—์„œ ๋ ˆ์ด๋ธ”์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋ƒฅ ์ผ๋ฐ˜ ๋ ˆ์ด๋ธ”์ด์žˆ๋Š” StackPanel์— ๋„ฃ๊ณ  TapGestureRecognizer๋ฅผ ๋ ˆ์ด๋ธ”์— ์ถ”๊ฐ€ํ•˜์—ฌ ํƒญํ•˜๋ฉด ๋ผ๋””์˜ค ๋ฒ„ํŠผ์ด ํ™•์ธ๋ฉ๋‹ˆ๋‹ค.

            <StackLayout Orientation="Horizontal">
              <RadioButton Margin="5" Text="Dark theme" IsChecked="{Binding UseDarkTheme}" />
              <Label VerticalOptions="Center" Text="Dark theme" IsVisible="{OnPlatform Android=true, UWP=false}" >
                <Label.GestureRecognizers>
                  <TapGestureRecognizer Tapped="UseDarkTheme_Tapped" />
                </Label.GestureRecognizers>
              </Label>
            </StackLayout>

์ง€๊ธˆ์€ ๋‹ซ์Šต๋‹ˆ๋‹ค.

RadioButton์€ 5.0.0์—์„œ ํฐ ๋ณ€ํ™”๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

11628

์ƒˆ๋กœ์šด ๊ฒƒ์„ ๋งŒ๋“ค์ง€ ๋ง๊ณ  ๊ธฐ์กด ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•˜์‹ญ์‹œ์˜ค. ๋ถ€๋””!

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•  ๋•Œ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ๋ถˆ์พŒํ•˜๊ฒŒ ๋งŒ๋“ค ๋•Œ๋งˆ๋‹ค ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

@Munde ์€ Microsoft ์ œํ’ˆ์„ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉํ•  ๋•Œ ๋ชจ๋“  ๋ฆด๋ฆฌ์Šค์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊นจ๋œจ๋ฆฌ๋Š” ๊ฒƒ์— ์ต์ˆ™ํ•ด์ง‘๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„ ์›Œํฌ๊ฐ€ ๋ชจ๋“  ์ด์ „ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ๊ฐ ๋ฆด๋ฆฌ์Šค์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์„ฑ๊ฐ€์‹  ์ผ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ์— ๋Œ€ํ•œ ๋น ๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• :

<StackLayout Orientation="Horizontal">
    <StackLayout.Spacing>
        <OnPlatform x:TypeArguments="x:Double">
            <On Platform="iOS" Value="-8" />
        </OnPlatform>
    </StackLayout.Spacing>

    <RadioButton x:Name="LocalRadioButton" IsChecked="{Binding IsSelected}"
                 GroupName="{Binding Source={x:Reference EntryGrid}, Path=BindingContext.Identifier}" />

    <Label Text="{Binding SelectionText}" FontSize="Default" LineBreakMode="TailTruncation" VerticalOptions="Center">
        <Label.GestureRecognizers>
            <TapGestureRecognizer Command="{Binding ViewModel.ToggleRadioButtonCommand, Source={x:Reference ContentPage}}"
                CommandParameter="{x:Reference LocalRadioButton}" />
        </Label.GestureRecognizers>
    </Label>
</StackLayout>

์˜ˆ, ์ด๊ฒƒ์ด VisualTree๋ฅผ ์ฆ๊ฐ€ ์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ, ViewModel์ด RadioButton์„ ์ฐธ์กฐํ•˜๊ณ  IsChecked ํ† ๊ธ€์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ๋„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊นจ๋—ํ•˜๊ณ  ์ข‹์€ ์†”๋ฃจ์…˜์€ ์•„๋‹ˆ์ง€๋งŒ ์ ์–ด๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค ..

์ด ๋ฌธ์ œ๋„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด Xamarin-learner๋กœ์„œ ๋„ˆ๋ฌด ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ  ํ”ผ๊ณคํ•ฉ๋‹ˆ๋‹ค.

@hopeko ๋Š” ์ต์ˆ™ํ•ด

@ Sebastian1989101 ๋‚˜๋Š” tapGestures๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ arround๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์ฒ˜์Œ์—๋Š” ๊ฑฐ์˜ 2 ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด ์ฝ”๋“œ์— ์ž˜๋ชป๋œ ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ฑฐ์˜ 2 ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ ๋ฒ„์ „์—์„œ๋Š” ๋ฉ”์ดํฌ์—… n์— c #์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” xamarin ํ˜•ํƒœ๋กœ ์ซ“๊ฒจ ๋‚ฌ๋‹ค๊ณ  ๋“ค์—ˆ์œผ๋ฏ€๋กœ xf โ€‹โ€‹4.8์„ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ 5๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์™„์ „ํžˆ ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰๋˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด Forms 5.0์—์„œ ๋ณ‘ํ•ฉ๋˜๋Š” ๊ฒฝ์šฐ Xamarin Forms 4.8์— ๋„์ž… ๋  ํฅ๋ฏธ๋กœ์šด ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ‹ฐ์ผ“์ด 5.0์—์„œ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ 4.8์ด Android์—์„œ ์™„์ „ํžˆ ์ค‘๋‹จ๋˜๋Š” ๊ฒƒ์€ ์ด์ƒํ•˜๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค.

Xamarin ๊ฐœ๋ฐœ ํŒ€์˜ ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ํฐ ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์ง€๋งŒ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ์งˆ๋ฌธ, ๋„๋Œ€์ฒด ๋ญํ•˜๋Š”๊ฑฐ์•ผ ???

@samhouts ์•„๋งˆ๋„,์ด ๋ฒ„๊ทธ๋ฅผ ๋‹ซ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ณ ์น˜๋Š” ๊ฒƒ์ด ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•œ ๋‹ฌ ๋‚ด๋‚ด ๋‹น์‹ ์€ ์•„๋ฌด๊ฒƒ๋„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

Aarrrggghhhh, ๋ฐฉ๊ธˆ ์ด๊ฒƒ์— ๋‚ด ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์—ฐํžˆ ์ด๊ฑธ๋กœ ํ’€๊ธฐ ์ „์— ์šฐ์—ฐํžˆ ๋งŒ๋‚œ ๊ฑด ๋‹คํ–‰์ด์—์š”.
๋ชจ๋“  RadioButton์„ ์šฐ์Šค๊ฝ์Šค๋Ÿฌ์šด StackLayout / OnPlatform / TapGesture / Label ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ต์ฒดํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. @ Sebastian1989101 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์‹ค๋ง ์Šค๋Ÿฝ๋„ค์š”.

nuget packge์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ž…๋ ฅ ์ œ์–ด๋ฅผ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

๊ด€๋ จ

Kamalkumar.E
์ˆ˜์„ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž
ํ•ธ๋“œํฐ : + 91-9750461689
์Šค์นด์ดํ”„ : kamalelango15
https://www.linkedin.com/in/kamal-kumar-39450654/

2020 ๋…„ 10 ์›” 3 ์ผ ํ† ์š”์ผ ์˜คํ›„ 3:57 RhomGit [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

Aarrrggghhhh, ๋ฐฉ๊ธˆ ์ด๊ฒƒ์— ๋‚ด ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋งŒ๋‚œ ํ–‰์šด
์šฐ์—ฐํžˆ ์ถœ์‹œ๋˜๊ธฐ ์ „์—
๋ชจ๋“  RadioButton์„ ์šฐ์Šค๊ฝ์Šค๋Ÿฌ์šด ๊ฒƒ์œผ๋กœ ๊ต์ฒดํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
StackLayout / OnPlatform / TapGesture / Label ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
@ Sebastian1989101 https://github.com/Sebastian1989101

์‹ค๋ง ์Šค๋Ÿฝ๋„ค์š”.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/xamarin/Xamarin.Forms/issues/11700#issuecomment-703082051 ,
๋˜๋Š” ๊ตฌ๋… ์ทจ์†Œ
https://github.com/notifications/unsubscribe-auth/ABXDAFFNT5VOZUS734J47FLSI337NANCNFSM4PYQFOPA
.

Wtf @PureWeen ์ง€๊ธˆ์€ ์ด๊ฒƒ์„

๋‚˜๋Š” ์–ธ์–ด์— ๋™์˜ํ•˜์ง€ ์•Š์ง€๋งŒ ์ด๊ฒƒ์ด ๋งค์šฐ ๋ถˆํŽธํ•˜๊ณ  ๋งค์šฐ ํ˜•ํŽธ์—†๋Š” ํ˜•์‹์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

์ด๋กœ ์ธํ•ด ์ตœ๊ทผ ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ์—์„œ ๋” ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ UI์˜ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋‹ค๋ฅธ ๋นŒ๋“œ๋ฅผ ์ค€๋น„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ž˜๋ชป์€ ์›๋ž˜ StackLayout / OnPlatform / TapGesture / Label ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ˆ˜ํ–‰ ํ•  ๋•Œ ๋†“์นœ XAML์ด ์•„๋‹Œ ์ฝ”๋“œ์—์„œ ์ผ๋ถ€ UI ์š”์†Œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์•„๋งˆ๋„ ์‹คํ—˜์  ๊ธฐ๋Šฅ์„ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

XF 5.0์„ ๋‹ค์šด๋กœ๋“œํ–ˆ๋Š”๋ฐ RadioButton์— Text ์†์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.
ํ…์ŠคํŠธ ์—†์Œ-๋ฒ„๊ทธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
์ด์ต! =)

XF 5.0์„ ๋‹ค์šด๋กœ๋“œํ–ˆ๋Š”๋ฐ RadioButton์— Text ์†์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.
ํ…์ŠคํŠธ ์—†์Œ-๋ฒ„๊ทธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
์ด์ต! =)

์–ด์ฉŒ๋ฉด ๋ชจ๋“  ๊ฒƒ์„ ๋‹ด์„ ์ˆ˜์žˆ๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐ : https://youtu.be/ttF80UnrJAg?t=364

https://github.com/enisn/Xamarin.Forms.InputKit๋กœ ์ „ํ™˜

๊ธฐ๋Šฅ์ด ์‹คํ—˜์ ์ด๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์ข…๊ฒฐํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค . ๋ ˆ์ด๋ธ”์ด์—†๋Š” ๋ผ๋””์˜ค๋Š” ํฐ ๋ฌธ์ œ์ด๋ฉฐ ๋‹ซ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์ž์‹ ๊ฐ์ด ์—†์Šต๋‹ˆ๋‹ค.

XF 5.0์„ ๋‹ค์šด๋กœ๋“œํ–ˆ๋Š”๋ฐ RadioButton์— Text ์†์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.
ํ…์ŠคํŠธ ์—†์Œ-๋ฒ„๊ทธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
์ด์ต! =)

์–ด์ฉŒ๋ฉด ๋ชจ๋“  ๊ฒƒ์„ ๋‹ด์„ ์ˆ˜์žˆ๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐ : https://youtu.be/ttF80UnrJAg?t=364

๊ฐ์‚ฌ. ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์‹ ๋ขฐ์„ฑ์— ๋Œ€ํ•ด์„œ๋Š” ๋งํ•  ์ˆ˜ ์—†์ง€๋งŒ ์‚ฌ์šฉ์ž ์ง€์ • ๋ Œ๋”๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

using Android.Content;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;

[assembly: ExportRenderer(typeof(RadioButton), typeof(ProjectName.Droid.Renderers.PatchedRadioButtonRenderer))]
namespace ProjectName.Droid.Renderers
{
    /// <summary>
    /// A workaround for the issue in the in-box renderer.
    /// https://github.com/xamarin/Xamarin.Forms/issues/11700
    /// </summary>
    public class PatchedRadioButtonRenderer : RadioButtonRenderer
    {
        public PatchedRadioButtonRenderer(Context context) : base(context) {}

        protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
        {
            // Apply text to native radio button
            this.Control.Text = e.NewElement.Text;

            base.OnElementChanged(e);
        }
    }
}

@ IgorKravchenko10 ํ…์ŠคํŠธ๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํด๋ž˜์‹ Xamarin!

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