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.
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 |
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:
- İş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ıstiffness = 600fyay animasyonu spesifikasyonunu kullanarak enterpolasyon yapan birShapesağ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 birRoundedCornerShape(20.dp).contentPadding:ButtonDefaults.contentPaddingkaynağı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) } }