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

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'),
),
);
},
),
);
},
),
),
);
}
}

View File

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