1
0
mirror of https://github.com/flutter/samples.git synced 2025-11-14 11:28:36 +00:00

adds new components to the gallery

This commit is contained in:
Eric Windmill
2025-10-21 09:22:02 -07:00
parent 41f68a6f56
commit 5c957adc5c
10 changed files with 156 additions and 10 deletions

View File

@@ -6,9 +6,7 @@ class AlertDialogPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
navigationBar: const CupertinoNavigationBar(
middle: Text('Alert Dialog'),
),
navigationBar: const CupertinoNavigationBar(middle: Text('Alert Dialog')),
child: Center(
child: CupertinoButton(
child: const Text('Show Alert Dialog'),
@@ -25,6 +23,13 @@ class AlertDialogPage extends StatelessWidget {
Navigator.pop(context);
},
),
CupertinoDialogAction(
isDefaultAction: true,
child: const Text('NO'),
onPressed: () {
Navigator.pop(context);
},
),
],
),
);

View File

@@ -0,0 +1,31 @@
import 'package:flutter/cupertino.dart';
class CheckboxPage extends StatefulWidget {
const CheckboxPage({super.key});
@override
State<CheckboxPage> createState() => _CheckboxPageState();
}
class _CheckboxPageState extends State<CheckboxPage> {
bool _value = false;
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
navigationBar: const CupertinoNavigationBar(
middle: Text('Checkbox'),
),
child: Center(
child: CupertinoCheckbox(
value: _value,
onChanged: (bool? value) {
setState(() {
_value = value!;
});
},
),
),
);
}
}

View File

@@ -10,7 +10,7 @@ class ListTilePage extends StatelessWidget {
child: Center(
child: ListView(
children: [
CupertinoListSection(
CupertinoListSection.insetGrouped(
children: [
CupertinoListTile(
title: Text('Title'),

View File

@@ -0,0 +1,46 @@
import 'package:flutter/cupertino.dart';
class RadioPage extends StatefulWidget {
const RadioPage({super.key});
@override
State<RadioPage> createState() => _RadioPageState();
}
class _RadioPageState extends State<RadioPage> {
int _selectedValue = 0;
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
navigationBar: const CupertinoNavigationBar(middle: Text('Radio')),
child: Center(
child: RadioGroup(
groupValue: _selectedValue,
onChanged: (int? value) {
setState(() {
_selectedValue = value!;
});
},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CupertinoListTile(
title: const Text('Option 1'),
leading: CupertinoRadio<int>(value: 0),
),
CupertinoListTile(
title: const Text('Option 2'),
leading: CupertinoRadio<int>(value: 1),
),
CupertinoListTile(
title: const Text('Option 3'),
leading: CupertinoRadio<int>(value: 2),
),
],
),
),
),
);
}
}

View File

@@ -5,13 +5,13 @@ class ScrollbarPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final ScrollController _controller = ScrollController();
final ScrollController controller = ScrollController();
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(middle: Text('Scrollbar')),
child: CupertinoScrollbar(
controller: _controller,
controller: controller,
child: ListView.separated(
controller: _controller,
controller: controller,
itemCount: 100,
itemBuilder: (BuildContext context, int index) {
return CupertinoListTile(title: Text('Item $index'));

View File

@@ -0,0 +1,39 @@
import 'package:flutter/cupertino.dart';
class SheetPage extends StatelessWidget {
const SheetPage({super.key});
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
navigationBar: const CupertinoNavigationBar(middle: Text('Sheet')),
child: Center(
child: CupertinoButton.filled(
child: const Text('Show Sheet'),
onPressed: () {
Navigator.of(context).push(
CupertinoSheetRoute<void>(
builder: (BuildContext context) {
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: const Text('Sheet'),
trailing: GestureDetector(
child: const Icon(CupertinoIcons.xmark),
onTap: () {
Navigator.of(context).pop();
},
),
),
child: const Center(
child: Text('This is a sheet'),
),
);
},
),
);
},
),
),
);
}
}