Buckets:
| import 'package:flutter/material.dart'; | |
| import 'settings_controller.dart'; | |
| /// Displays the various settings that can be customized by the user. | |
| /// | |
| /// When a user changes a setting, the SettingsController is updated and | |
| /// Widgets that listen to the SettingsController are rebuilt. | |
| class SettingsView extends StatelessWidget { | |
| const SettingsView({super.key, required this.controller}); | |
| static const routeName = '/settings'; | |
| final SettingsController controller; | |
| Widget build(BuildContext context) { | |
| return Scaffold( | |
| appBar: AppBar( | |
| title: const Text('Settings'), | |
| ), | |
| body: Padding( | |
| padding: const EdgeInsets.all(16), | |
| // Glue the SettingsController to the theme selection DropdownButton. | |
| // | |
| // When a user selects a theme from the dropdown list, the | |
| // SettingsController is updated, which rebuilds the MaterialApp. | |
| child: DropdownButton<ThemeMode>( | |
| // Read the selected themeMode from the controller | |
| value: controller.themeMode, | |
| // Call the updateThemeMode method any time the user selects a theme. | |
| onChanged: controller.updateThemeMode, | |
| items: const [ | |
| DropdownMenuItem( | |
| value: ThemeMode.system, | |
| child: Text('System Theme'), | |
| ), | |
| DropdownMenuItem( | |
| value: ThemeMode.light, | |
| child: Text('Light Theme'), | |
| ), | |
| DropdownMenuItem( | |
| value: ThemeMode.dark, | |
| child: Text('Dark Theme'), | |
| ) | |
| ], | |
| ), | |
| ), | |
| ); | |
| } | |
| } | |
Xet Storage Details
- Size:
- 1.63 kB
- Xet hash:
- 70779179cf88affce2d7655376ae12d80b79b6ccbf48a5b975db859ad1e18f8b
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.