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:
@@ -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,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user