Merge remote-tracking branch 'origin/simon' into simon
# Conflicts: # lib/main.dart
This commit is contained in:
108
lib/main.dart
108
lib/main.dart
@@ -1,110 +1,6 @@
|
||||
// Copyright 2021 The Flutter team. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'constants.dart';
|
||||
import 'home.dart';
|
||||
import 'myApp.dart';
|
||||
|
||||
void main() {
|
||||
runApp(
|
||||
const App(),
|
||||
);
|
||||
}
|
||||
|
||||
class App extends StatefulWidget {
|
||||
const App({super.key});
|
||||
|
||||
@override
|
||||
State<App> createState() => _AppState();
|
||||
}
|
||||
|
||||
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 get useLightMode {
|
||||
switch (themeMode) {
|
||||
case ThemeMode.system:
|
||||
return View.of(context).platformDispatcher.platformBrightness ==
|
||||
Brightness.light;
|
||||
case ThemeMode.light:
|
||||
return true;
|
||||
case ThemeMode.dark:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void handleBrightnessChange(bool useLightMode) {
|
||||
setState(() {
|
||||
themeMode = useLightMode ? ThemeMode.light : ThemeMode.dark;
|
||||
});
|
||||
}
|
||||
|
||||
void handleMaterialVersionChange() {
|
||||
setState(() {
|
||||
useMaterial3 = !useMaterial3;
|
||||
});
|
||||
}
|
||||
|
||||
void handleColorSelect(int value) {
|
||||
setState(() {
|
||||
colorSelectionMethod = ColorSelectionMethod.colorSeed;
|
||||
colorSelected = ColorSeed.values[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;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp(
|
||||
debugShowCheckedModeBanner: false,
|
||||
title: 'Material 3',
|
||||
themeMode: themeMode,
|
||||
theme: ThemeData(
|
||||
colorSchemeSeed: colorSelectionMethod == ColorSelectionMethod.colorSeed
|
||||
? colorSelected.color
|
||||
: null,
|
||||
colorScheme: colorSelectionMethod == ColorSelectionMethod.image
|
||||
? imageColorScheme
|
||||
: null,
|
||||
useMaterial3: useMaterial3,
|
||||
brightness: Brightness.light,
|
||||
),
|
||||
darkTheme: ThemeData(
|
||||
colorSchemeSeed: 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,
|
||||
),
|
||||
);
|
||||
}
|
||||
runApp(MyApp());
|
||||
}
|
||||
|
||||
18
lib/myApp.dart
Normal file
18
lib/myApp.dart
Normal file
@@ -0,0 +1,18 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'navigation.dart';
|
||||
|
||||
class MyApp extends StatelessWidget {
|
||||
const MyApp({ Key? key }) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp(
|
||||
title: 'My App',
|
||||
theme: ThemeData(
|
||||
useMaterial3: true,
|
||||
primaryColor: Colors.red,
|
||||
),
|
||||
home: Navigation()
|
||||
);
|
||||
}
|
||||
}
|
||||
50
lib/navigation.dart
Normal file
50
lib/navigation.dart
Normal file
@@ -0,0 +1,50 @@
|
||||
import 'dart:ffi';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'pages/testUI.dart';
|
||||
import 'pages/TodayView.dart';
|
||||
import 'pages/InboxView.dart';
|
||||
import 'pages/NotesView.dart';
|
||||
|
||||
class Navigation extends StatefulWidget {
|
||||
const Navigation({super.key});
|
||||
|
||||
@override
|
||||
State<Navigation> createState() => _NavigationState();
|
||||
}
|
||||
|
||||
class _NavigationState extends State<Navigation> {
|
||||
|
||||
int _selectedIndex = 0;
|
||||
static const List<Widget> _widgetOptions = <Widget>[
|
||||
TodayView(),
|
||||
InboxView(),
|
||||
NotesView(),
|
||||
];
|
||||
|
||||
void _onItemTapped(int index) {
|
||||
setState(() {
|
||||
_selectedIndex = index;
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text("BottomNavBar"),
|
||||
),
|
||||
body: Center(child: _widgetOptions.elementAt(_selectedIndex)),
|
||||
bottomNavigationBar: BottomNavigationBar(
|
||||
items: const <BottomNavigationBarItem>[
|
||||
BottomNavigationBarItem(
|
||||
icon: Icon(Icons.calendar_today), label: "today"),
|
||||
BottomNavigationBarItem(icon: Icon(Icons.inbox), label: "Inbox"),
|
||||
BottomNavigationBarItem(icon: Icon(Icons.note), label: "Notes"),
|
||||
],
|
||||
currentIndex: _selectedIndex,
|
||||
onTap: _onItemTapped,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
19
lib/pages/InboxView.dart
Normal file
19
lib/pages/InboxView.dart
Normal file
@@ -0,0 +1,19 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class InboxView extends StatefulWidget {
|
||||
const InboxView({super.key});
|
||||
|
||||
@override
|
||||
State<InboxView> createState() => _InboxViewState();
|
||||
}
|
||||
|
||||
class _InboxViewState extends State<InboxView> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return const Scaffold(
|
||||
body: Center(
|
||||
child: Icon(Icons.inbox),
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
19
lib/pages/NoteDetailView.dart
Normal file
19
lib/pages/NoteDetailView.dart
Normal file
@@ -0,0 +1,19 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class NoteDetailView extends StatefulWidget {
|
||||
const NoteDetailView({super.key});
|
||||
|
||||
@override
|
||||
State<NoteDetailView> createState() => _NoteDetailViewState();
|
||||
}
|
||||
|
||||
class _NoteDetailViewState extends State<NoteDetailView> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return const Scaffold(
|
||||
body: Center(
|
||||
child: Text('NoteDetailView'),
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
19
lib/pages/NotesView.dart
Normal file
19
lib/pages/NotesView.dart
Normal file
@@ -0,0 +1,19 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class NotesView extends StatefulWidget {
|
||||
const NotesView({super.key});
|
||||
|
||||
@override
|
||||
State<NotesView> createState() => _NotesViewState();
|
||||
}
|
||||
|
||||
class _NotesViewState extends State<NotesView> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return const Scaffold(
|
||||
body: Center(
|
||||
child: Icon(Icons.note),
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
19
lib/pages/TodayView.dart
Normal file
19
lib/pages/TodayView.dart
Normal file
@@ -0,0 +1,19 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class TodayView extends StatefulWidget {
|
||||
const TodayView({super.key});
|
||||
|
||||
@override
|
||||
State<TodayView> createState() => _TodayViewState();
|
||||
}
|
||||
|
||||
class _TodayViewState extends State<TodayView> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return const Scaffold(
|
||||
body: Center(
|
||||
child: Icon(Icons.calendar_today)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
29
lib/pages/testUI.dart
Normal file
29
lib/pages/testUI.dart
Normal file
@@ -0,0 +1,29 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class TestUI extends StatefulWidget {
|
||||
const TestUI({super.key});
|
||||
|
||||
@override
|
||||
State<TestUI> createState() => _TestUIState();
|
||||
}
|
||||
|
||||
class _TestUIState extends State<TestUI> {
|
||||
int _test = 0;
|
||||
|
||||
void _onPressed() {
|
||||
setState(() {
|
||||
_test = 1;
|
||||
});
|
||||
}
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Column(children: [
|
||||
FloatingActionButton(onPressed: _onPressed),
|
||||
Text('$_test'),
|
||||
],),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user