remove some elements and add settings page

cupertino-gallery
Eric Windmill 4 weeks ago
parent d6138c9ab8
commit d43bd76e6c

@ -1,4 +1,5 @@
import 'package:flutter/cupertino.dart';
import 'settings_page.dart';
import 'widgets_page.dart';
class GalleryHome extends StatelessWidget {
@ -24,7 +25,7 @@ class GalleryHome extends StatelessWidget {
builder: (BuildContext context) {
return switch (index) {
0 => const WidgetsPage(),
1 => const Center(child: Text('Settings')),
1 => const SettingsPage(),
_ => const Center(child: Text('Widgets')),
};
},

@ -3,7 +3,6 @@
// found in the LICENSE file.
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'gallery_home.dart';
@ -16,9 +15,6 @@ class CupertinoGalleryApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return const CupertinoApp(
title: 'Cupertino Gallery',
home: GalleryHome(),
);
return const CupertinoApp(title: 'Cupertino Gallery', home: GalleryHome());
}
}
}

@ -0,0 +1,108 @@
import 'package:flutter/cupertino.dart';
class SettingsPage extends StatefulWidget {
const SettingsPage({super.key});
@override
State<SettingsPage> createState() => _SettingsPageState();
}
class _SettingsPageState extends State<SettingsPage> {
bool _darkMode = false;
double _textSize = 1.0;
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
navigationBar: const CupertinoNavigationBar(
middle: Text('Settings'),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CupertinoListSection(
header: const Text('Appearance'),
children: [
CupertinoListTile(
title: const Text('Dark Mode'),
trailing: CupertinoSwitch(
value: _darkMode,
onChanged: (bool value) {
setState(() {
_darkMode = value;
});
},
),
),
CupertinoListTile(
title: const Text('Text Size'),
trailing: Text('${(_textSize * 100).toStringAsFixed(0)}%'),
),
CupertinoSlider(
value: _textSize,
onChanged: (double value) {
setState(() {
_textSize = value;
});
},
),
],
),
CupertinoListSection(
header: const Text('General'),
children: [
CupertinoListTile(
title: const Text('About'),
trailing: const Icon(CupertinoIcons.forward),
onTap: () {},
),
CupertinoListTile(
title: const Text('Privacy'),
trailing: const Icon(CupertinoIcons.forward),
onTap: () {},
),
CupertinoListTile(
title: const Text('Help'),
trailing: const Icon(CupertinoIcons.forward),
onTap: () {},
),
CupertinoListTile(
title: const Text('Reset Settings'),
trailing: const Icon(CupertinoIcons.forward),
onTap: () {
showCupertinoDialog<void>(
context: context,
builder: (BuildContext context) => CupertinoAlertDialog(
title: const Text('Reset Settings'),
content: const Text(
'Are you sure you want to reset all settings?'),
actions: <CupertinoDialogAction>[
CupertinoDialogAction(
child: const Text('Cancel'),
onPressed: () {
Navigator.pop(context);
},
),
CupertinoDialogAction(
isDestructiveAction: true,
child: const Text('Reset'),
onPressed: () {
setState(() {
_darkMode = false;
_textSize = 1.0;
});
Navigator.pop(context);
},
),
],
),
);
},
),
],
),
],
),
);
}
}

@ -7,8 +7,6 @@ import 'widgets/button_page.dart';
import 'widgets/context_menu_page.dart';
import 'widgets/date_picker_page.dart';
import 'widgets/list_tile_page.dart';
import 'widgets/navigation_bar_page.dart';
import 'widgets/page_scaffold_page.dart';
import 'widgets/picker_page.dart';
import 'widgets/popup_surface_page.dart';
import 'widgets/scrollbar_page.dart';
@ -17,9 +15,6 @@ import 'widgets/segmented_control_page.dart';
import 'widgets/slider_page.dart';
import 'widgets/sliding_segmented_control_page.dart';
import 'widgets/switch_page.dart';
import 'widgets/tab_bar_page.dart';
import 'widgets/tab_scaffold_page.dart';
import 'widgets/tab_view_page.dart';
import 'widgets/text_field_page.dart';
import 'widgets/text_theme_page.dart';
import 'widgets/time_picker_page.dart';
@ -62,12 +57,6 @@ class WidgetDetailPage extends StatelessWidget {
return const SlidingSegmentedControlPage();
case 'Switch':
return const SwitchPage();
case 'Tab Bar':
return const TabBarPage();
case 'Tab Scaffold':
return const TabScaffoldPage();
case 'Tab View':
return const TabViewPage();
case 'Text Field':
return const TextFieldPage();
case 'Text Theme':

@ -18,7 +18,7 @@ class _SegmentedControlPageState extends State<SegmentedControlPage> {
),
child: Center(
child: CupertinoSegmentedControl<int>(
children: const <int, Widget>{
children: <int, Widget>{
0: Text('One'),
1: Text('Two'),
2: Text('Three'),

@ -28,9 +28,6 @@ class WidgetsPage extends StatelessWidget {
CustomCupertinoListTile(title: 'Slider'),
CustomCupertinoListTile(title: 'Sliding Segmented Control'),
CustomCupertinoListTile(title: 'Switch'),
CustomCupertinoListTile(title: 'Tab Bar'),
CustomCupertinoListTile(title: 'Tab Scaffold'),
CustomCupertinoListTile(title: 'Tab View'),
CustomCupertinoListTile(title: 'Text Field'),
CustomCupertinoListTile(title: 'Text Theme'),
CustomCupertinoListTile(title: 'Time Picker'),

@ -5,15 +5,14 @@
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.
import 'package:cupertino_gallery/gallery_home.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:cupertino_gallery/main.dart';
void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(const MyApp());
await tester.pumpWidget(const GalleryHome());
// Verify that our counter starts at 0.
expect(find.text('0'), findsOneWidget);

Loading…
Cancel
Save