1
0
mirror of https://github.com/flutter/samples.git synced 2026-07-22 00:42:37 +00:00

Flutter 3.29 beta (#2571)

This commit is contained in:
Eric Windmill
2025-02-12 18:08:01 -05:00
committed by GitHub
parent d62c784789
commit 719fd72c38
685 changed files with 76244 additions and 53721 deletions

View File

@@ -18,81 +18,79 @@ class SettingsScreen extends StatefulWidget {
class _SettingsScreenState extends State<SettingsScreen> {
@override
Widget build(BuildContext context) => Scaffold(
body: SafeArea(
child: SingleChildScrollView(
child: Align(
alignment: Alignment.topCenter,
child: ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 400),
child: const Card(
child: Padding(
padding: EdgeInsets.symmetric(vertical: 18, horizontal: 12),
child: SettingsContent(),
),
),
body: SafeArea(
child: SingleChildScrollView(
child: Align(
alignment: Alignment.topCenter,
child: ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 400),
child: const Card(
child: Padding(
padding: EdgeInsets.symmetric(vertical: 18, horizontal: 12),
child: SettingsContent(),
),
),
),
),
);
),
),
);
}
class SettingsContent extends StatelessWidget {
const SettingsContent({
super.key,
});
const SettingsContent({super.key});
@override
Widget build(BuildContext context) => Column(
children: [
...[
Text(
'Settings',
style: Theme.of(context).textTheme.headlineMedium,
),
FilledButton(
onPressed: () {
BookstoreAuth.of(context).signOut();
},
child: const Text('Sign out'),
),
const Text('Example using the Link widget:'),
Link(
uri: Uri.parse('/books/all/book/0'),
builder: (context, followLink) => TextButton(
children: [
...[
Text('Settings', style: Theme.of(context).textTheme.headlineMedium),
FilledButton(
onPressed: () {
BookstoreAuth.of(context).signOut();
},
child: const Text('Sign out'),
),
const Text('Example using the Link widget:'),
Link(
uri: Uri.parse('/books/all/book/0'),
builder:
(context, followLink) => TextButton(
onPressed: followLink,
child: const Text('/books/all/book/0'),
),
),
const Text('Example using GoRouter.of(context).go():'),
TextButton(
child: const Text('/books/all/book/0'),
onPressed: () {
GoRouter.of(context).go('/books/all/book/0');
},
),
].map((w) => Padding(padding: const EdgeInsets.all(8), child: w)),
const Text('Displays a dialog on the root Navigator:'),
TextButton(
onPressed: () => showDialog<String>(
),
const Text('Example using GoRouter.of(context).go():'),
TextButton(
child: const Text('/books/all/book/0'),
onPressed: () {
GoRouter.of(context).go('/books/all/book/0');
},
),
].map((w) => Padding(padding: const EdgeInsets.all(8), child: w)),
const Text('Displays a dialog on the root Navigator:'),
TextButton(
onPressed:
() => showDialog<String>(
context: context,
builder: (context) => AlertDialog(
title: const Text('Alert!'),
content: const Text('The alert description goes here.'),
actions: [
TextButton(
onPressed: () => Navigator.pop(context, 'Cancel'),
child: const Text('Cancel'),
builder:
(context) => AlertDialog(
title: const Text('Alert!'),
content: const Text('The alert description goes here.'),
actions: [
TextButton(
onPressed: () => Navigator.pop(context, 'Cancel'),
child: const Text('Cancel'),
),
TextButton(
onPressed: () => Navigator.pop(context, 'OK'),
child: const Text('OK'),
),
],
),
TextButton(
onPressed: () => Navigator.pop(context, 'OK'),
child: const Text('OK'),
),
],
),
),
child: const Text('Show Dialog'),
)
],
);
child: const Text('Show Dialog'),
),
],
);
}