Jetpack Compose Glimmer'da açma/kapatma düğmeleri

Uygun XR cihazlar
Bu kılavuz, bu tür XR cihazlar için deneyimler oluşturmanıza yardımcı olur.
Görüntüleme Gözlüğü

Jetpack Compose Glimmer'da ToggleButton, işaretli duruma göre görünümünü değiştiren etkileşimli bir bileşendir. Açma/kapatma düğmeleri, şekil ve renkte net görsel geçişler sağlamak için ekran gözlükleri için optimize edilmiştir. Bu geçişler, bir işlemin veya ayarın ne zaman etkin olduğunu gösterir.

Açılıp kapatılabilen işlemleri göstermek için açma/kapatma düğmelerini kullanın. Yalnızca simge içeren açma/kapatma düğmelerinin aksine, açma/kapatma düğmeleri öncelikle metin içeriğini gösterir. Bununla birlikte, ek bağlam için isteğe bağlı simge yuvalarını da destekler.

Diğer kullanım alanları için standart düğmeler ve simge düğmeler de vardır.

Şekil 1. Kullanıcı arayüzü yerleşiminde oynatma ve duraklatma işlemleri için kullanılan Jetpack Compose Glimmer'daki bir açma/kapatma düğmesi örneği.

Anatomi

Açma/kapatma düğmesi, durumlar arasında dönüşen bir kapsayıcı ve isteğe bağlı simgeler içeren bir etiketten oluşur.

Bölüm Açıklama

Container

Dairesel şekil (işaretsiz) ile yuvarlak dikdörtgen (işaretli) arasında animasyon oluşturur.

Şirket

Genellikle Text composable'ı.

Simgeler (isteğe bağlı)

Eyalete göre değişebilen, başta veya sonda yer alan reklam alanları.

Boyutlar

Standart düğmeler gibi, açma/kapatma düğmeleri de iki boyut varyantını destekler:

Boyut Minimum yükseklik Varsayılan kullanım

Orta

48.dp

Varsayılan etkileşimli boyut.

Büyük

72.dp

Birincil veya yüksek vurgulu açma/kapatma düğmeleri.

Açma/kapatma düğmesi varsayılanları

Açma/kapatma düğmeleri varsayılan olarak ToggleButtonDefaults.animateShape simgesini kullanır. Bu, aşağıdaki durumlar arasında sorunsuz bir geçiş sağlar:

ToggleButtonColors sınıfı, aşağıdaki durumlar için renk çözünürlüğünü yönetir:

Animasyon

Açma/kapatma düğmelerinde animasyon için aşağıdaki varsayılanlar kullanılır:

  • animateShape: Köşe boyutlarını stiffness = 600f yay animasyonu spesifikasyonunu kullanarak enterpolasyon yapan bir Shape sağlar.
  • colors: Her iki durum için de arka plan ve içerik renklerini özelleştirmeye yönelik fabrika işlevi.
  • CheckedShape: İşaretli durum için kullanılan statik bir RoundedCornerShape(20.dp).
  • contentPadding: ButtonDefaults.contentPadding kaynağından devralır.

Örnek: Açma/kapatma düğmesi

Aşağıdaki kod, temel bir açma/kapatma düğmesi oluşturur:

@Composable
fun ToggleButtonSample() {
    var checked by remember { mutableStateOf(false) }
    val text = if (checked) "Toggle on" else "Toggle off"
    ToggleButton(checked = checked, onCheckedChange = { checked = it }) { Text(text) }
}

Örnek: Başta simge bulunan açma/kapatma düğmesi

Aşağıdaki kod, başında simge bulunan bir açma/kapatma düğmesi oluşturur:

@Composable
fun ToggleButtonWithLeadingIconSample() {
    var checked by remember { mutableStateOf(false) }
    val text = if (checked) "Toggle on" else "Toggle off"
    ToggleButton(
        checked = checked,
        leadingIcon = {
            Icon(if (checked) FavoriteIcon else OutlinedFavoriteIcon, "Localized description")
        },
        onCheckedChange = { checked = it },
    ) {
        Text(text)
    }
}