Pantrix UI

Tri-state Checkbox

Üçüncü bir durumu olan onay kutusu: işaretli, boş ya da ikisinden de biraz.

import com.pantrixui.components.elements.checkbox.PantrixTriStateCheckbox

Örnekler

Üç durum: tümünü seç

PantrixTriStateCheckbox üçüncü bir durumu çizer. Altındaki kutuların bir kısmı seçiliyken "Tüm bildirimler" ne işaretli ne boştur: bir çizgi gösterir ve ekran okuyucuya öyle okunur.

Durumu kutu değil, çağıran hesaplar: hepsi seçiliyse On, hiçbiri seçili değilse Off, arada Indeterminate. onClick yalnızca basıldığını bildirir; burada hepsini seçer, hepsi seçiliyken hepsini bırakır.

val notifications = listOf("Kargo durumu", "Kampanyalar", "Hesap güvenliği")
var chosen by remember { mutableStateOf(setOf(notifications.first())) }
val all = when (chosen.size) {
    0 -> ToggleableState.Off
    notifications.size -> ToggleableState.On
    else -> ToggleableState.Indeterminate
}
Column(verticalArrangement = Arrangement.spacedBy(PantrixTheme.spacing.xs)) {
    PantrixTriStateCheckbox(
        state = all,
        onClick = { chosen = if (all == ToggleableState.On) emptySet() else notifications.toSet() },
        label = "Tüm bildirimler",
        tagKey = "all_notifications"
    )
    Column(modifier = Modifier.padding(start = PantrixTheme.spacing.xl)) {
        notifications.forEachIndexed { index, name ->
            PantrixCheckbox(
                checked = name in chosen,
                onCheckedChange = { on -> chosen = if (on) chosen + name else chosen - name },
                label = name,
                tagKey = "notification_$index"
            )
        }
    }
}

API

state

Üçüncü bir durumu olan onay kutusu: işaretli, boş ya da ikisinden de biraz.

ParametreTürVarsayılanNe olduğu
stateToggleableStateİşaretli, boş ya da belirsiz.
onClick(() -> Unit)?Kullanıcı onay kutusuna basınca çağrılır. Null onu salt okunur yapar.
modifierModifierModifierSatırın modifier'ı.
enabledBooleantrueOnay kutusuna basılıp basılamadığı. Basılamayan kutu devre dışı renklerle çizilir ve devre dışı olduğunu söyler.
labelString?nullKutunun yanındaki yazı: hedefin bir parçasıdır ve ekran okuyucu için onay kutusunun adıdır.
supportingTextString?nullEtiketin altında, daha küçük bir yazıyla duran yardım. error true iken mesajın kendisidir.
errorBooleanfalseDeğerin yanlış olup olmadığı. Yanlışsa kutu ve yardım metni danger rolüne döner, ekran okuyucuya girdinin geçersiz olduğu söylenir.
styleCheckboxStyle?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.
colorsCheckboxColors?nullBu onay kutusunun kendi renkleri. Verdiği renkler kullanılır, gerisi temadan gelir. Devre dışı kutu ve hatalı kutu temanın renklerinde kalır.
contentDescriptionString?nullEkran okuyucunun, label verilmeyen onay kutusu için ya da etiketin yerine söylediği.
tagKeyString?nullOnay kutusunun otomasyon anahtarı: satır Checkbox_<tagKey> etiketini taşır.
interactionSourceMutableInteractionSource?nullOnay kutusunun dışarı taşınan etkileşimleri. Null verilirse kutu kendi kaynağını tutar.
controlPositionControlPositionControlPosition.Startkutunun durduğu yer: bir seçenek listesindeki gibi etiketin önü ya da arkası. Arkasındaysa kutu 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 kutunun bıraktığı yerde sarar.

CheckboxStyle

PantrixCheckbox'un kutusu: boyu, köşeleri ve kenarı.

ParametreTürVarsayılanNe olduğu
sizeDpDp.UnspecifiedKutunun genişliği ve yüksekliği, kenarıyla birlikte.
shapeShapeSpecShapeSpec.UnspecifiedKutunun köşeleri: markanın şekil ölçeğinin bir adımı. Böylece köşeleri keskin olan bir markanın kutuları da keskin köşeli olur.
strokeWidthDpDp.UnspecifiedKutunun kenarının kalınlığı. İşaret ve çizgi de bu kalınlıkta çizilir.

CheckboxColors

Temanın renklerini almayan bir onay kutusu için PantrixCheckbox'un boyandığı renkler: verilen renk kullanılır, verilmeyen temanın rolünde kalır. Bir ürün yalnızca değiştirdiği renkleri verir:

ParametreTürVarsayılanNe olduğu
checkedColorColor.Unspecifiedİşaretli ya da belirsiz kutunun dolgusu. Temanın primary rengi.
checkmarkColorColor.UnspecifiedDolgunun üstündeki işaret ve çizgi: checked'in üstünde okunan renk. Primary rolünün onColor'ı.
borderColorColor.Unspecifiedİşaretli olmayan kutunun kenarı. Temanın borderStrong rengi: boş bir kutu kenarından ibarettir.

Erişilebilirlik