Unverified Commit 844a8ad7 authored by Taha Tesser's avatar Taha Tesser Committed by GitHub

Update `CupertinoSwitch` example (#112063)

parent cf01ecd1
...@@ -28,7 +28,7 @@ class CupertinoSwitchExample extends StatefulWidget { ...@@ -28,7 +28,7 @@ class CupertinoSwitchExample extends StatefulWidget {
} }
class _CupertinoSwitchExampleState extends State<CupertinoSwitchExample> { class _CupertinoSwitchExampleState extends State<CupertinoSwitchExample> {
bool wifi = true; bool switchValue = true;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -37,38 +37,16 @@ class _CupertinoSwitchExampleState extends State<CupertinoSwitchExample> { ...@@ -37,38 +37,16 @@ class _CupertinoSwitchExampleState extends State<CupertinoSwitchExample> {
middle: Text('CupertinoSwitch Sample'), middle: Text('CupertinoSwitch Sample'),
), ),
child: Center( child: Center(
// CupertinoFormRow's main axis is set to max by default. child: CupertinoSwitch(
// Set the intrinsic height widget to center the CupertinoFormRow. // This bool value toggles the switch.
child: IntrinsicHeight( value: switchValue,
child: Container( activeColor: CupertinoColors.activeBlue,
color: CupertinoTheme.of(context).barBackgroundColor, onChanged: (bool? value) {
child: CupertinoFormRow( // This is called when the user toggles the switch.
prefix: Row( setState(() {
children: <Widget>[ switchValue = value ?? false;
Icon( });
// Wifi icon is updated based on switch value. },
wifi ? CupertinoIcons.wifi : CupertinoIcons.wifi_slash,
color: wifi ? CupertinoColors.systemBlue : CupertinoColors.systemRed,
),
const SizedBox(width: 10),
const Text('Wi-Fi')
],
),
child: CupertinoSwitch(
// This bool value toggles the switch.
value: wifi,
thumbColor: CupertinoColors.systemBlue,
trackColor: CupertinoColors.systemRed.withOpacity(0.14),
activeColor: CupertinoColors.systemRed.withOpacity(0.64),
onChanged: (bool? value) {
// This is called when the user toggles the switch.
setState(() {
wifi = value!;
});
},
),
),
),
), ),
), ),
); );
......
...@@ -14,19 +14,11 @@ void main() { ...@@ -14,19 +14,11 @@ void main() {
final Finder switchFinder = find.byType(CupertinoSwitch); final Finder switchFinder = find.byType(CupertinoSwitch);
CupertinoSwitch cupertinoSwitch = tester.widget<CupertinoSwitch>(switchFinder); CupertinoSwitch cupertinoSwitch = tester.widget<CupertinoSwitch>(switchFinder);
final Finder wifiOnIcon = find.byIcon(CupertinoIcons.wifi);
final Finder wifiOffIcon = find.byIcon(CupertinoIcons.wifi_slash);
expect(cupertinoSwitch.value, true); expect(cupertinoSwitch.value, true);
// When the switch is on, wifi icon should be visible.
expect(wifiOnIcon, findsOneWidget);
expect(wifiOffIcon, findsNothing);
await tester.tap(switchFinder); await tester.tap(switchFinder);
await tester.pumpAndSettle(); await tester.pumpAndSettle();
cupertinoSwitch = tester.widget<CupertinoSwitch>(switchFinder); cupertinoSwitch = tester.widget<CupertinoSwitch>(switchFinder);
expect(cupertinoSwitch.value, false); expect(cupertinoSwitch.value, false);
// When the switch is off, wifi slash icon should be visible.
expect(wifiOnIcon, findsNothing);
expect(wifiOffIcon, findsOneWidget);
}); });
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment