Pantrix UI

Radio Button

Bir radyo düğmesi: seçili ya da seçili olmayan bir halka ve o halkanın etiketi. Biri seçilen birkaç seçenekten biridir.

import com.pantrixui.components.elements.radiobutton.PantrixRadioButton

Örnekler

Devre dışı ve salt okunur

Grubun enabled = false'u her seçeneği kapatır; etiket ve yardım metni de devre dışı yazı rengiyle yazılır. Hangi seçeneğin seçili olduğu yine görünür.

onClick = null verilen PantrixRadioButton salt okunurdur: basış ve odak almaz, renkleri değişmez, adını ve seçili olduğunu yine söyler.

PantrixRadioGroup(
    options = listOf(
        RadioOption("card", "Kart", tagKey = "card"),
        RadioOption("transfer", "Havale", tagKey = "transfer")
    ),
    selected = "card",
    onSelect = {},
    orientation = Orientation.Horizontal,
    enabled = false,
    label = "Ödeme",
    supportingText = "Devre dışı: kayıtlı kartınızla ödenecek",
    tagKey = "payment"
)
PantrixRadioButton(
    selected = true,
    onClick = null,
    label = "Salt okunur",
    supportingText = "Basılmaz; yalnızca neyin seçildiğini gösterir",
    tagKey = "read_only"
)

Tek başına: kartların içinde

PantrixRadioButton tek başına, grubun kuramayacağı bir düzen içindir: burada her seçenek bir kartın içindedir. Seçimi çağıran tutar: her düğme seçili olup olmadığını selected ile alır, basılınca onClick ile sorar.

Düğmeler Modifier.selectableGroup() taşıyan bir sütunun içindedir: ekran okuyucu onları tek bir seçim olarak duyar. Ok tuşlarıyla gezmek grubun işidir, burada yoktur: her düğme Tab için ayrı bir duraktır.

var plan by rememberSaveable { mutableStateOf("monthly") }
Column(
    modifier = Modifier.widthIn(max = 360.dp).selectableGroup(),
    verticalArrangement = Arrangement.spacedBy(PantrixTheme.spacing.sm)
) {
    PantrixCard(modifier = Modifier.fillMaxWidth(), variant = CardVariant.Outlined) {
        PantrixRadioButton(
            selected = plan == "monthly",
            onClick = { plan = "monthly" },
            modifier = Modifier.fillMaxWidth(),
            label = "Aylık",
            supportingText = "Her ay yenilenir; istediğiniz zaman bırakabilirsiniz",
            tagKey = "plan_monthly"
        )
    }
    PantrixCard(modifier = Modifier.fillMaxWidth(), variant = CardVariant.Outlined) {
        PantrixRadioButton(
            selected = plan == "yearly",
            onClick = { plan = "yearly" },
            modifier = Modifier.fillMaxWidth(),
            label = "Yıllık",
            supportingText = "Yılda bir kez ödenir",
            tagKey = "plan_yearly"
        )
    }
}

API

selected

Bir radyo düğmesi: seçili ya da seçili olmayan bir halka ve o halkanın etiketi. Biri seçilen birkaç seçenekten biridir.

ParametreTürVarsayılanNe olduğu
selectedBooleanBu seçeneğin seçili olup olmadığı.
onClick(() -> Unit)?Kullanıcı radyo düğmesine basınca çağrılır, düğme zaten seçili olsa da olmasa da. Radyo düğmesi kendiliğinden bir şey değiştirmez: selected ne diyorsa odur. Null verilirse salt okunur olur.
modifierModifierModifierSatırın modifier'ı.
enabledBooleantrueRadyo düğmesinin seçilip seçilemeyeceği. Seçilemeyen düğme devre dışı renklerle çizilir ve devre dışı olduğunu söyler.
labelString?nullHalkanın yanındaki metin: hedefin parçasıdır ve ekran okuyucu için radyo düğmesinin adıdır.
supportingTextString?nullEtiketin altında, daha küçük bir yazıyla duran yardım. error true iken mesajın kendisidir.
errorBooleanfalseSeçimin yanlış ya da eksik olup olmadığı: halka ve yardım metni danger rolüne döner, ekran okuyucuya girdinin geçersiz olduğu söylenir.
styleRadioStyle?nullBu çağrının kendi stili: çevresindeki her stili ezer, yoğunluk ona da uygulanır. Yalnızca verdiği alanlar değişir ve her platformda değişir.
colorsRadioColors?nullBu radyo düğmesinin kendi renkleri: verdiği renkler kullanılır, gerisi temanınkilerdir. Devre dışı bir halka ve hatalı bir halka temanın renklerinde kalır.
contentDescriptionString?nullEkran okuyucunun radyo düğmesi için söylediği söz: label yoksa düğmenin adıdır, seçeneğin kendisi olan bir kartta olduğu gibi. label varsa onun yerine söylenir.
tagKeyString?nullRadyo düğmesinin otomasyon anahtarı: satır RadioButton_<tagKey>'dir. Bir basış RadioButton olayı olarak bildirilir, etiketiyle hiçbir zaman bildirilmez.
interactionSourceMutableInteractionSource?nullRadyo düğmesinin dışarı taşınan etkileşimleri. Null ise düğme kendi kaynağını tutar.
controlPositionControlPositionControlPosition.Starthalkanın durduğu yer: bir seçenek listesindeki gibi etiketin önü ya da arkası. Arkasındaysa halka satıra verilen genişliğin sonunda durur, Modifier.fillMaxWidth() onu ötekilerle hizalar; satıra genişlik verilmemişse etiketin hemen ardındadır. Etiket halkanın bıraktığı yerde sarar.

RadioStyle

PantrixRadioButton'ın halkası ve içindeki nokta: her birinin boyu ve halkanın kalınlığı.

ParametreTürVarsayılanNe olduğu
sizeDpDp.UnspecifiedHalkanın genişliği ve yüksekliği, çizgisiyle birlikte.
dotSizeDpDp.UnspecifiedSeçili bir halkanın içindeki noktanın genişliği ve yüksekliği.
strokeWidthDpDp.UnspecifiedHalkanın çizgisinin kalınlığı.

RadioColors

Temanın renklerini almayanlar için PantrixRadioButton'ın ve PantrixRadioGroup seçeneklerinin boyandığı renkler: verilen renk kullanılır, verilmeyen temanın rolünde kalır.

ParametreTürVarsayılanNe olduğu
selectedColorColor.UnspecifiedSeçilen seçeneğin halkası ve noktası. Temanın primary rengi.
unselectedColorColor.UnspecifiedSeçili olmayan bir seçeneğin halkası. Temanın borderStrong rengi: boş bir halka çizgisinden ibarettir.

Erişilebilirlik