Created
February 8, 2023 07:51
-
-
Save timnew/7900d69ae25e07d4c6f342cb3484366d to your computer and use it in GitHub Desktop.
Switch demo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
}); | |
}, | |
), | |
], | |
); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment