forked from flutter/packages
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add example for
CupertinoCheckbox
(#151779)
- Loading branch information
1 parent
ba57fa3
commit cb4ba2f
Showing
3 changed files
with
102 additions
and
0 deletions.
There are no files selected for viewing
55 changes: 55 additions & 0 deletions
55
examples/api/lib/cupertino/checkbox/cupertino_checkbox.0.dart
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
// 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. | ||
|
||
import 'package:flutter/cupertino.dart'; | ||
|
||
/// Flutter code sample for [CupertinoCheckbox]. | ||
void main() => runApp(const CupertinoCheckboxApp()); | ||
|
||
class CupertinoCheckboxApp extends StatelessWidget { | ||
const CupertinoCheckboxApp({super.key}); | ||
|
||
@override | ||
Widget build(BuildContext context) { | ||
return const CupertinoApp( | ||
theme: CupertinoThemeData(brightness: Brightness.light), | ||
home: CupertinoPageScaffold( | ||
navigationBar: CupertinoNavigationBar( | ||
middle: Text('CupertinoCheckbox Example'), | ||
), | ||
child: SafeArea( | ||
child: CupertinoCheckboxExample(), | ||
), | ||
), | ||
); | ||
} | ||
} | ||
|
||
class CupertinoCheckboxExample extends StatefulWidget { | ||
const CupertinoCheckboxExample({super.key}); | ||
|
||
@override | ||
State<CupertinoCheckboxExample> createState() => _CupertinoCheckboxExampleState(); | ||
} | ||
|
||
class _CupertinoCheckboxExampleState extends State<CupertinoCheckboxExample> { | ||
bool? isChecked = true; | ||
|
||
@override | ||
Widget build(BuildContext context) { | ||
return CupertinoCheckbox( | ||
checkColor: CupertinoColors.white, | ||
// Set tristate to true to make the checkbox display a null value | ||
// in addition to the default true and false values. | ||
tristate: true, | ||
value: isChecked, | ||
onChanged: (bool? value) { | ||
setState(() { | ||
isChecked = value; | ||
}); | ||
}, | ||
); | ||
} | ||
} |
41 changes: 41 additions & 0 deletions
41
examples/api/test/cupertino/checkbox/cupertino_checkbox.0_test.dart
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
// 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. | ||
|
||
import 'package:flutter/cupertino.dart'; | ||
import 'package:flutter_api_samples/cupertino/checkbox/cupertino_checkbox.0.dart' as example; | ||
import 'package:flutter_test/flutter_test.dart'; | ||
|
||
void main() { | ||
testWidgets('Checkbox can be checked', (WidgetTester tester) async { | ||
await tester.pumpWidget( | ||
const example.CupertinoCheckboxApp(), | ||
); | ||
|
||
CupertinoCheckbox checkbox = tester.widget(find.byType(CupertinoCheckbox)); | ||
|
||
// Verify the initial state of the checkbox. | ||
expect(checkbox.value, isTrue); | ||
expect(checkbox.tristate, isTrue); | ||
|
||
// Tap the checkbox and verify the state change. | ||
await tester.tap(find.byType(CupertinoCheckbox)); | ||
await tester.pump(); | ||
checkbox = tester.widget(find.byType(CupertinoCheckbox)); | ||
|
||
expect(checkbox.value, isNull); | ||
|
||
// Tap the checkbox and verify the state change. | ||
await tester.tap(find.byType(CupertinoCheckbox)); | ||
await tester.pump(); | ||
checkbox = tester.widget(find.byType(CupertinoCheckbox)); | ||
|
||
expect(checkbox.value, isFalse); | ||
|
||
await tester.tap(find.byType(CupertinoCheckbox)); | ||
await tester.pump(); | ||
checkbox = tester.widget(find.byType(CupertinoCheckbox)); | ||
|
||
expect(checkbox.value, isTrue); | ||
}); | ||
} |
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