Geç

Switch bileşeni, kullanıcıların işaretli ve işaretsiz olmak üzere iki durum arasında geçiş yapmasına olanak tanır. Uygulamanızda, kullanıcının aşağıdakilerden birini yapmasına izin vermek için bir anahtar kullanabilirsiniz:

  • Bir ayarı açın veya kapatın.
  • Bir özelliği etkinleştirin veya devre dışı bırakın.
  • Bir seçenek belirleyin.

Bileşenin iki bölümü vardır: küçük resim ve parça. Başparmak, anahtarın sürüklenebilir kısmıdır ve parça arka plandır. Kullanıcı, anahtarın durumunu değiştirmek için başparmağı sola veya sağa sürükleyebilir. Ayrıca anahtara dokunarak da bu ayarı kontrol edip temizleyebilirler.

Hem açık hem de koyu modda anahtar bileşeni örnekleri.
Şekil 1. Anahtar bileşeni.

Temel uygulama

Tam API tanımı için Switch referansına bakın. Kullanmanız gerekebilecek temel parametrelerden bazıları şunlardır:

  • checked: Anahtarın ilk durumu.
  • onCheckedChange: Anahtarın durumu değiştiğinde çağrılan bir geri çağırma işlevi.
  • enabled: Anahtarın etkin veya devre dışı olup olmadığını belirtir.
  • colors: Anahtar için kullanılan renkler.

Aşağıdaki örnekte, Switch composable'ın minimal bir şekilde uygulanması gösterilmektedir.

@Composable
fun SwitchMinimalExample() {
    var checked by remember { mutableStateOf(true) }

    Switch(
        checked = checked,
        onCheckedChange = {
            checked = it
        }
    )
}

Bu uygulama, onay kutusunun işareti kaldırıldığında aşağıdaki gibi görünür:

İşaretlenmemiş temel anahtar.
Şekil 2. Kontrol edilmemiş bir anahtar.

İşaretlendiğinde görünüm şu şekilde olur:

Kontrol edilen temel bir anahtar.
Şekil 3. İşaretli bir anahtar.

Gelişmiş uygulama

Daha gelişmiş bir geçiş uygularken kullanmak isteyebileceğiniz birincil parametreler şunlardır:

  • thumbContent: İşaretlendiğinde başparmağın görünüşünü özelleştirmek için bunu kullanın.
  • colors: Parçanın ve küçük resmin rengini özelleştirmek için kullanın.

Özel küçük resim

Özel bir küçük resim oluşturmak için thumbContent parametresi için herhangi bir derlenebilir öğe iletebilirsiniz. Aşağıda, küçük resmi için özel simge kullanan bir anahtar örneği verilmiştir:

@Composable
fun SwitchWithIconExample() {
    var checked by remember { mutableStateOf(true) }

    Switch(
        checked = checked,
        onCheckedChange = {
            checked = it
        },
        thumbContent = if (checked) {
            {
                Icon(
                    imageVector = Icons.Filled.Check,
                    contentDescription = null,
                    modifier = Modifier.size(SwitchDefaults.IconSize),
                )
            }
        } else {
            null
        }
    )
}

Bu uygulamada, işaretli olmayan görünüm önceki bölümdeki örnekle aynıdır. Ancak bu uygulama, kontrol edildiğinde aşağıdaki gibi görünür:

İşaretlendiğinde özel bir simge görüntülemek için thumbContent parametresini kullanan bir anahtar.
Şekil 4. Özel onaylanmış simgesi olan bir anahtar.

Özel renkler

Aşağıdaki örnekte, anahtarın işaretli olup olmadığını dikkate alarak anahtarın düğmesinin ve kaydırma çubuğunun rengini değiştirmek için colors parametresini nasıl kullanabileceğiniz gösterilmektedir.

@Composable
fun SwitchWithCustomColors() {
    var checked by remember { mutableStateOf(true) }

    Switch(
        checked = checked,
        onCheckedChange = {
            checked = it
        },
        colors = SwitchDefaults.colors(
            checkedThumbColor = MaterialTheme.colorScheme.primary,
            checkedTrackColor = MaterialTheme.colorScheme.primaryContainer,
            uncheckedThumbColor = MaterialTheme.colorScheme.secondary,
            uncheckedTrackColor = MaterialTheme.colorScheme.secondaryContainer,
        )
    )
}

Bu uygulama aşağıdaki gibi görünür:

Hem başparmak hem de raptiye için özel renklere sahip bir anahtar görüntülemek üzere colors parametresini kullanan bir anahtar.
Şekil 5. Özel renklere sahip bir anahtar.

Ek kaynaklar