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,40 +37,18 @@ class _CupertinoSwitchExampleState extends State<CupertinoSwitchExample> { ...@@ -37,40 +37,18 @@ 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.
// Set the intrinsic height widget to center the CupertinoFormRow.
child: IntrinsicHeight(
child: Container(
color: CupertinoTheme.of(context).barBackgroundColor,
child: CupertinoFormRow(
prefix: Row(
children: <Widget>[
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( child: CupertinoSwitch(
// This bool value toggles the switch. // This bool value toggles the switch.
value: wifi, value: switchValue,
thumbColor: CupertinoColors.systemBlue, activeColor: CupertinoColors.activeBlue,
trackColor: CupertinoColors.systemRed.withOpacity(0.14),
activeColor: CupertinoColors.systemRed.withOpacity(0.64),
onChanged: (bool? value) { onChanged: (bool? value) {
// This is called when the user toggles the switch. // This is called when the user toggles the switch.
setState(() { setState(() {
wifi = value!; switchValue = value ?? false;
}); });
}, },
), ),
), ),
),
),
),
); );
} }
} }
...@@ -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