Switch
元件可讓使用者在兩種狀態 (勾選和未勾選) 之間切換。在應用程式中,您可以使用切換按鈕讓使用者執行下列任一操作:
- 開啟或關閉設定。
- 啟用或停用功能。
- 選取所需選項。
元件包含兩個部分:滑桿和滑桿軌道。拇指是切換按鈕的可拖曳部分,而軌道則是背景。使用者可以將指標拖曳至左側或右側,以變更切換鈕的狀態。使用者也可以輕觸切換鈕來檢查及清除。
基本導入
如需完整的 API 定義,請參閱 Switch
參考資料。以下是您可能需要使用的部分重要參數:
checked
:切換按鈕的初始狀態。onCheckedChange
:當切換器狀態變更時,系統會呼叫的回呼。enabled
:切換鈕是否已啟用或停用。colors
:切換鈕使用的顏色。
以下範例是 Switch
可組合函式的最小實作項目。
@Composable fun SwitchMinimalExample() { var checked by remember { mutableStateOf(true) } Switch( checked = checked, onCheckedChange = { checked = it } ) }
取消勾選後,這個實作方式會顯示如下:
勾選後的顯示效果如下:
進階導入
實作較進階的切換時,您可能會想使用的主要參數如下:
thumbContent
:用於自訂勾選時的拇指圖示外觀。colors
:用於自訂音軌和滑桿的顏色。
自訂縮圖
您可以為 thumbContent
參數傳遞任何可組合項,以建立自訂縮圖。以下是使用自訂圖示做為滑鈕按鈕的範例:
@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 } ) }
在這個實作中,未勾選的顯示方式與上一節的範例相同。不過,勾選後,這項實作會顯示如下:
自訂顏色
以下範例說明如何使用 colors 參數,根據開關是否已勾選來變更開關的拇指和軌跡顏色。
@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, ) ) }
此實作方式如下所示: