1
0
mirror of https://github.com/flutter/samples.git synced 2026-06-06 14:29:10 +00:00

[material_3_demo] Refactor application code into multiple small libraries (#2581)

This commit is contained in:
Kevin Moore
2025-02-18 09:41:16 -06:00
committed by GitHub
parent a8d02fbc7a
commit 6cf81895d1
23 changed files with 1000 additions and 910 deletions

View File

@@ -4,8 +4,8 @@
import 'package:flutter/material.dart';
import 'constants.dart';
import 'home.dart';
import 'src/constants.dart';
import 'src/home.dart';
void main() async {
runApp(const App());
@@ -19,14 +19,14 @@ class App extends StatefulWidget {
}
class _AppState extends State<App> {
bool useMaterial3 = true;
ThemeMode themeMode = ThemeMode.system;
ColorSeed colorSelected = ColorSeed.baseColor;
ColorImageProvider imageSelected = ColorImageProvider.leaves;
ColorScheme? imageColorScheme = const ColorScheme.light();
ColorSelectionMethod colorSelectionMethod = ColorSelectionMethod.colorSeed;
bool _useMaterial3 = true;
ThemeMode _themeMode = ThemeMode.system;
ColorSeed _colorSelected = ColorSeed.baseColor;
ColorImageProvider _imageSelected = ColorImageProvider.leaves;
ColorScheme? _imageColorScheme = const ColorScheme.light();
ColorSelectionMethod _colorSelectionMethod = ColorSelectionMethod.colorSeed;
bool get useLightMode => switch (themeMode) {
bool get _useLightMode => switch (_themeMode) {
ThemeMode.system =>
View.of(context).platformDispatcher.platformBrightness ==
Brightness.light,
@@ -34,34 +34,34 @@ class _AppState extends State<App> {
ThemeMode.dark => false,
};
void handleBrightnessChange(bool useLightMode) {
void _handleBrightnessChange(bool useLightMode) {
setState(() {
themeMode = useLightMode ? ThemeMode.light : ThemeMode.dark;
_themeMode = useLightMode ? ThemeMode.light : ThemeMode.dark;
});
}
void handleMaterialVersionChange() {
void _handleMaterialVersionChange() {
setState(() {
useMaterial3 = !useMaterial3;
_useMaterial3 = !_useMaterial3;
});
}
void handleColorSelect(int value) {
void _handleColorSelect(int value) {
setState(() {
colorSelectionMethod = ColorSelectionMethod.colorSeed;
colorSelected = ColorSeed.values[value];
_colorSelectionMethod = ColorSelectionMethod.colorSeed;
_colorSelected = ColorSeed.values[value];
});
}
void handleImageSelect(int value) {
void _handleImageSelect(int value) {
final String url = ColorImageProvider.values[value].url;
ColorScheme.fromImageProvider(provider: NetworkImage(url)).then((
newScheme,
) {
setState(() {
colorSelectionMethod = ColorSelectionMethod.image;
imageSelected = ColorImageProvider.values[value];
imageColorScheme = newScheme;
_colorSelectionMethod = ColorSelectionMethod.image;
_imageSelected = ColorImageProvider.values[value];
_imageColorScheme = newScheme;
});
});
}
@@ -71,37 +71,37 @@ class _AppState extends State<App> {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Material 3',
themeMode: themeMode,
themeMode: _themeMode,
theme: ThemeData(
colorSchemeSeed:
colorSelectionMethod == ColorSelectionMethod.colorSeed
? colorSelected.color
_colorSelectionMethod == ColorSelectionMethod.colorSeed
? _colorSelected.color
: null,
colorScheme:
colorSelectionMethod == ColorSelectionMethod.image
? imageColorScheme
_colorSelectionMethod == ColorSelectionMethod.image
? _imageColorScheme
: null,
useMaterial3: useMaterial3,
useMaterial3: _useMaterial3,
brightness: Brightness.light,
),
darkTheme: ThemeData(
colorSchemeSeed:
colorSelectionMethod == ColorSelectionMethod.colorSeed
? colorSelected.color
: imageColorScheme!.primary,
useMaterial3: useMaterial3,
_colorSelectionMethod == ColorSelectionMethod.colorSeed
? _colorSelected.color
: _imageColorScheme!.primary,
useMaterial3: _useMaterial3,
brightness: Brightness.dark,
),
home: Home(
useLightMode: useLightMode,
useMaterial3: useMaterial3,
colorSelected: colorSelected,
imageSelected: imageSelected,
handleBrightnessChange: handleBrightnessChange,
handleMaterialVersionChange: handleMaterialVersionChange,
handleColorSelect: handleColorSelect,
handleImageSelect: handleImageSelect,
colorSelectionMethod: colorSelectionMethod,
useLightMode: _useLightMode,
useMaterial3: _useMaterial3,
colorSelected: _colorSelected,
imageSelected: _imageSelected,
handleBrightnessChange: _handleBrightnessChange,
handleMaterialVersionChange: _handleMaterialVersionChange,
handleColorSelect: _handleColorSelect,
handleImageSelect: _handleImageSelect,
colorSelectionMethod: _colorSelectionMethod,
),
);
}