1
0
mirror of https://github.com/flutter/samples.git synced 2025-11-08 22:09:06 +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

@@ -1,4 +1,7 @@
{ {
"context": {
"fileName": "/.prompts/llm.md"
},
"mcpServers": { "mcpServers": {
"dart": { "dart": {
"command": "dart", "command": "dart",
@@ -6,6 +9,5 @@
"mcp-server" "mcp-server"
] ]
} }
}, }
"contextFileName": "/.prompts/llm.md" }
}

View File

@@ -0,0 +1,11 @@
{
"mcpServers": {
"dart": {
"command": "dart",
"args": [
"mcp-server"
]
}
},
"contextFileName": "/.prompts/llm.md"
}

View File

@@ -4,14 +4,17 @@ import 'widgets/action_sheet_page.dart';
import 'widgets/activity_indicator_page.dart'; import 'widgets/activity_indicator_page.dart';
import 'widgets/alert_dialog_page.dart'; import 'widgets/alert_dialog_page.dart';
import 'widgets/button_page.dart'; import 'widgets/button_page.dart';
import 'widgets/checkbox_page.dart';
import 'widgets/context_menu_page.dart'; import 'widgets/context_menu_page.dart';
import 'widgets/date_picker_page.dart'; import 'widgets/date_picker_page.dart';
import 'widgets/list_tile_page.dart'; import 'widgets/list_tile_page.dart';
import 'widgets/picker_page.dart'; import 'widgets/picker_page.dart';
import 'widgets/popup_surface_page.dart'; import 'widgets/popup_surface_page.dart';
import 'widgets/radio_page.dart';
import 'widgets/scrollbar_page.dart'; import 'widgets/scrollbar_page.dart';
import 'widgets/search_text_field_page.dart'; import 'widgets/search_text_field_page.dart';
import 'widgets/segmented_control_page.dart'; import 'widgets/segmented_control_page.dart';
import 'widgets/sheet_page.dart';
import 'widgets/slider_page.dart'; import 'widgets/slider_page.dart';
import 'widgets/sliding_segmented_control_page.dart'; import 'widgets/sliding_segmented_control_page.dart';
import 'widgets/switch_page.dart'; import 'widgets/switch_page.dart';
@@ -35,6 +38,8 @@ class WidgetDetailPage extends StatelessWidget {
return const AlertDialogPage(); return const AlertDialogPage();
case 'Button': case 'Button':
return const ButtonPage(); return const ButtonPage();
case 'Checkbox':
return const CheckboxPage();
case 'Context Menu': case 'Context Menu':
return const ContextMenuPage(); return const ContextMenuPage();
case 'Date Picker': case 'Date Picker':
@@ -45,12 +50,16 @@ class WidgetDetailPage extends StatelessWidget {
return const PickerPage(); return const PickerPage();
case 'Popup Surface': case 'Popup Surface':
return const PopupSurfacePage(); return const PopupSurfacePage();
case 'Radio':
return const RadioPage();
case 'Scrollbar': case 'Scrollbar':
return const ScrollbarPage(); return const ScrollbarPage();
case 'Search Text Field': case 'Search Text Field':
return const SearchTextFieldPage(); return const SearchTextFieldPage();
case 'Segmented Control': case 'Segmented Control':
return const SegmentedControlPage(); return const SegmentedControlPage();
case 'Sheet':
return const SheetPage();
case 'Slider': case 'Slider':
return const SliderPage(); return const SliderPage();
case 'Sliding Segmented Control': case 'Sliding Segmented Control':

View File

@@ -6,9 +6,7 @@ class AlertDialogPage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return CupertinoPageScaffold( return CupertinoPageScaffold(
navigationBar: const CupertinoNavigationBar( navigationBar: const CupertinoNavigationBar(middle: Text('Alert Dialog')),
middle: Text('Alert Dialog'),
),
child: Center( child: Center(
child: CupertinoButton( child: CupertinoButton(
child: const Text('Show Alert Dialog'), child: const Text('Show Alert Dialog'),
@@ -25,6 +23,13 @@ class AlertDialogPage extends StatelessWidget {
Navigator.pop(context); 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: Center(
child: ListView( child: ListView(
children: [ children: [
CupertinoListSection( CupertinoListSection.insetGrouped(
children: [ children: [
CupertinoListTile( CupertinoListTile(
title: Text('Title'), 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 @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final ScrollController _controller = ScrollController(); final ScrollController controller = ScrollController();
return CupertinoPageScaffold( return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(middle: Text('Scrollbar')), navigationBar: CupertinoNavigationBar(middle: Text('Scrollbar')),
child: CupertinoScrollbar( child: CupertinoScrollbar(
controller: _controller, controller: controller,
child: ListView.separated( child: ListView.separated(
controller: _controller, controller: controller,
itemCount: 100, itemCount: 100,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return CupertinoListTile(title: Text('Item $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'),
),
);
},
),
);
},
),
),
);
}
}

View File

@@ -17,14 +17,17 @@ class WidgetsPage extends StatelessWidget {
CustomCupertinoListTile(title: 'Activity Indicator'), CustomCupertinoListTile(title: 'Activity Indicator'),
CustomCupertinoListTile(title: 'Alert Dialog'), CustomCupertinoListTile(title: 'Alert Dialog'),
CustomCupertinoListTile(title: 'Button'), CustomCupertinoListTile(title: 'Button'),
CustomCupertinoListTile(title: 'Checkbox'),
CustomCupertinoListTile(title: 'Context Menu'), CustomCupertinoListTile(title: 'Context Menu'),
CustomCupertinoListTile(title: 'Date Picker'), CustomCupertinoListTile(title: 'Date Picker'),
CustomCupertinoListTile(title: 'List Tile'), CustomCupertinoListTile(title: 'List Tile'),
CustomCupertinoListTile(title: 'Picker'), CustomCupertinoListTile(title: 'Picker'),
CustomCupertinoListTile(title: 'Popup Surface'), CustomCupertinoListTile(title: 'Popup Surface'),
CustomCupertinoListTile(title: 'Radio'),
CustomCupertinoListTile(title: 'Scrollbar'), CustomCupertinoListTile(title: 'Scrollbar'),
CustomCupertinoListTile(title: 'Search Text Field'), CustomCupertinoListTile(title: 'Search Text Field'),
CustomCupertinoListTile(title: 'Segmented Control'), CustomCupertinoListTile(title: 'Segmented Control'),
CustomCupertinoListTile(title: 'Sheet'),
CustomCupertinoListTile(title: 'Slider'), CustomCupertinoListTile(title: 'Slider'),
CustomCupertinoListTile(title: 'Sliding Segmented Control'), CustomCupertinoListTile(title: 'Sliding Segmented Control'),
CustomCupertinoListTile(title: 'Switch'), CustomCupertinoListTile(title: 'Switch'),