1
0
mirror of https://github.com/flutter/samples.git synced 2026-07-21 08:21:35 +00:00

Cupertino gallery app (#2715)

Resolves #2519 

Part of the larger effort to bring the samples/repo into a stable and
maintainable condition that _also_ remains useful. See: #2409

## Pre-launch Checklist

- [x] I read the [Flutter Style Guide] _recently_, and have followed its
advice.
- [x] I signed the [CLA].
- [x] I read the [Contributors Guide].
- [x] I have added sample code updates to the [changelog].
- [x] I updated/added relevant documentation (doc comments with `///`).
This commit is contained in:
Eric Windmill
2026-02-09 15:37:25 -08:00
committed by GitHub
parent b0002d1d1b
commit e61e3a96ad
155 changed files with 5708 additions and 3 deletions

View File

@@ -0,0 +1,52 @@
import 'package:flutter/cupertino.dart';
import 'settings_page.dart';
import 'widgets_page.dart';
class GalleryHome extends StatelessWidget {
const GalleryHome({
super.key,
required this.onThemeChange,
required this.isDarkMode,
required this.onTextSizeChange,
required this.textSize,
});
final ValueChanged<bool> onThemeChange;
final bool isDarkMode;
final ValueChanged<double> onTextSizeChange;
final double textSize;
@override
Widget build(BuildContext context) {
return CupertinoTabScaffold(
tabBar: CupertinoTabBar(
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.list_bullet),
label: 'Widgets',
),
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.settings),
label: 'Settings',
),
],
),
tabBuilder: (BuildContext context, int index) {
return CupertinoTabView(
builder: (BuildContext context) {
return switch (index) {
0 => const WidgetsPage(),
1 => SettingsPage(
onThemeChange: onThemeChange,
isDarkMode: isDarkMode,
onTextSizeChange: onTextSizeChange,
textSize: textSize,
),
_ => const Center(child: Text('Widgets')),
};
},
);
},
);
}
}