| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Flutter code sample for Switch |
| |
| import 'package:flutter/material.dart'; |
| |
| void main() => runApp(const SwitchApp()); |
| |
| class SwitchApp extends StatelessWidget { |
| const SwitchApp({super.key}); |
| |
| @override |
| Widget build(BuildContext context) { |
| return MaterialApp( |
| theme: ThemeData(useMaterial3: true, colorSchemeSeed: const Color(0xff6750a4)), |
| home: Scaffold( |
| appBar: AppBar(title: const Text('Switch Sample')), |
| body: const Center( |
| child: SwitchExample(), |
| ), |
| ), |
| ); |
| } |
| } |
| |
| class SwitchExample extends StatefulWidget { |
| const SwitchExample({super.key}); |
| |
| @override |
| State<SwitchExample> createState() => _SwitchExampleState(); |
| } |
| |
| class _SwitchExampleState extends State<SwitchExample> { |
| bool light0 = true; |
| bool light1 = true; |
| bool light2 = true; |
| |
| final MaterialStateProperty<Icon?> thumbIcon = MaterialStateProperty.resolveWith<Icon?>((Set<MaterialState> states) { |
| // Thumb icon when the switch is selected. |
| if (states.contains(MaterialState.selected)) { |
| return const Icon(Icons.check); |
| } |
| return const Icon(Icons.close); |
| }, |
| ); |
| |
| @override |
| Widget build(BuildContext context) { |
| return Column( |
| mainAxisAlignment: MainAxisAlignment.center, |
| children: <Widget>[ |
| Switch( |
| value: light0, |
| onChanged: (bool value) { |
| setState(() { |
| light0 = value; |
| }); |
| }, |
| ), |
| Switch( |
| thumbIcon: thumbIcon, |
| value: light1, |
| onChanged: (bool value) { |
| setState(() { |
| light1 = value; |
| }); |
| }, |
| ), |
| ], |
| ); |
| } |
| } |