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 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 ancak ek bağlam için isteğe bağlı simge yuvalarını destekler.
Diğer kullanım alanları için standart düğmeler ve simge düğmeler de vardır.
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 yapar. |
Şirket |
Genellikle |
Simgeler (isteğe bağlı) |
Eyalete göre değişebilen, önde veya arkada 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:
- İşaret kaldırıldı:
GlimmerTheme.shapes.large(genellikleCircleShape). - İşaretli:
ToggleButtonDefaults.CheckedShape(20.dpköşeli birRoundedCornerShape).
ToggleButtonColors sınıfı, aşağıdaki durumlar için renk çözünürlüğünü yönetir:
- İşareti kaldırıldı: Varsayılan olarak
GlimmerTheme.colors.surfacedeğerine ayarlanır. - İşaretli: Varsayılan olarak
GlimmerTheme.colors.surfacedeğerine ayarlanır.
Animasyon
Açma/kapatma düğmelerinde animasyon için aşağıdaki varsayılanlar kullanılır:
animateShape: Köşe boyutlarını bir yay animasyonu spesifikasyonu (stiffness = 600f) kullanarak enterpolasyon yapan birShapesağlar.colors: Her iki durum için de arka plan ve içerik renklerini özelleştirmeye yönelik bir fabrika işlevi.CheckedShape: İşaretli durum için kullanılan statik birRoundedCornerShape(20.dp).contentPadding:ButtonDefaults.contentPaddingkaynağından devralını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: Önde 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) } ToggleButton( checked = checked, leadingIcon = { Icon( if (checked) FavoriteIcon else OutlinedFavoriteIcon, contentDescription = "Toggle favorite" ) }, onCheckedChange = { checked = it } ) { Text(if (checked) "On" else "Off") } }