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:
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"context": {
|
||||
"fileName": "/.prompts/llm.md"
|
||||
},
|
||||
"mcpServers": {
|
||||
"dart": {
|
||||
"command": "dart",
|
||||
@@ -6,6 +9,5 @@
|
||||
"mcp-server"
|
||||
]
|
||||
}
|
||||
},
|
||||
"contextFileName": "/.prompts/llm.md"
|
||||
}
|
||||
}
|
||||
}
|
||||
11
.gemini/settings.json.orig
Normal file
11
.gemini/settings.json.orig
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"mcpServers": {
|
||||
"dart": {
|
||||
"command": "dart",
|
||||
"args": [
|
||||
"mcp-server"
|
||||
]
|
||||
}
|
||||
},
|
||||
"contextFileName": "/.prompts/llm.md"
|
||||
}
|
||||
@@ -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':
|
||||
|
||||
@@ -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);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
31
cupertino_gallery/lib/widgets/checkbox_page.dart
Normal file
31
cupertino_gallery/lib/widgets/checkbox_page.dart
Normal 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!;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ class ListTilePage extends StatelessWidget {
|
||||
child: Center(
|
||||
child: ListView(
|
||||
children: [
|
||||
CupertinoListSection(
|
||||
CupertinoListSection.insetGrouped(
|
||||
children: [
|
||||
CupertinoListTile(
|
||||
title: Text('Title'),
|
||||
|
||||
46
cupertino_gallery/lib/widgets/radio_page.dart
Normal file
46
cupertino_gallery/lib/widgets/radio_page.dart
Normal 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),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -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'));
|
||||
|
||||
39
cupertino_gallery/lib/widgets/sheet_page.dart
Normal file
39
cupertino_gallery/lib/widgets/sheet_page.dart
Normal 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'),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -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'),
|
||||
|
||||
Reference in New Issue
Block a user