Switch コンポーネントを使用すると、ユーザーはオン
とオフの 2 つの状態を切り替えることができます。アプリでは、スイッチを使用して、ユーザーが次のいずれかを行えるようにします。
- 設定をオンまたはオフに切り替える。
- 機能を有効または無効にする。
- オプションを選択する。
このコンポーネントには、サムとトラックの 2 つの部分があります。サムはスイッチのドラッグ可能な部分で、トラックは背景です。ユーザーはサムを左右にドラッグして、スイッチの状態を変更できます。また、スイッチをタップしてオンまたはオフにすることもできます。
基本的な実装
完全な 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, ) ) }
この実装は次のようになります。