This commit is contained in:
jyuesong
2022-01-17 16:59:04 +08:00
parent ad141e4bd1
commit 352d4e162c
3 changed files with 138 additions and 30 deletions

View File

@@ -9,12 +9,12 @@ const Color _primaryColor = Color(0xFF299343);
class ThemeViewModel extends ChangeNotifier {
ThemeData currentTheme = lightTheme;
ThemeColors themeColor = LightartThemeColors();
ThemeColors themeColor = LightThemeColors();
void changeTheme() {
if (currentTheme == darkTheme) {
currentTheme = lightTheme;
themeColor = LightartThemeColors();
themeColor = LightThemeColors();
} else {
currentTheme = darkTheme;
themeColor = DartThemeColors();
@@ -46,12 +46,17 @@ ThemeData darkTheme = ThemeData.dark().copyWith(
labelColor: Color(0xffffffff),
unselectedLabelColor: Color(0xff999999),
),
colorScheme: const ColorScheme.light(secondary: _primaryColor,primary: _primaryColor,),
colorScheme: const ColorScheme.light(
secondary: _primaryColor,
primary: _primaryColor,
),
);
ThemeData lightTheme = ThemeData.light().copyWith(
primaryColor: _primaryColor,
colorScheme: const ColorScheme.light(secondary: _primaryColor,primary: _primaryColor,),
colorScheme: const ColorScheme.light(
secondary: _primaryColor,
primary: _primaryColor,
),
scaffoldBackgroundColor: Colors.white,
inputDecorationTheme: const InputDecorationTheme(
labelStyle: TextStyle(color: _primaryColor),
@@ -93,14 +98,14 @@ abstract class ThemeColors {
Color descColor();
Color searchBarBg();
Color backGround();
Color pinColor();
Map<String, TextStyle> codeEditorTheme();
}
class LightartThemeColors extends ThemeColors {
class LightThemeColors extends ThemeColors {
@override
Color taskTitleColor() {
return Color(0xff333333);
@@ -125,6 +130,11 @@ class LightartThemeColors extends ThemeColors {
Color descColor() {
return Color(0xff999999);
}
@override
Color backGround() {
return Color(0xffF5F5F5);
}
}
class DartThemeColors extends ThemeColors {
@@ -152,4 +162,9 @@ class DartThemeColors extends ThemeColors {
Color descColor() {
return Color(0xff999999);
}
@override
Color backGround() {
return Colors.black;
}
}

View File

@@ -86,24 +86,27 @@ class _HomePageState extends ConsumerState<HomePage> {
title: _title,
actions: actions,
),
body: IndexedStack(
index: _index,
children: [
const Positioned.fill(
child: TaskPage(),
),
const Positioned.fill(
child: EnvPage(),
),
Positioned.fill(
child: ConfigPage(
key: configKey,
body: ColoredBox(
color: ref.watch(themeProvider).themeColor.backGround(),
child: IndexedStack(
index: _index,
children: [
const Positioned.fill(
child: TaskPage(),
),
),
const Positioned.fill(
child: OtherPage(),
),
],
const Positioned.fill(
child: EnvPage(),
),
Positioned.fill(
child: ConfigPage(
key: configKey,
),
),
const Positioned.fill(
child: OtherPage(),
),
],
),
),
bottomNavigationBar: BottomNavigationBar(
items: titles

View File

@@ -1,22 +1,112 @@
import 'package:flutter/material.dart';
import 'package:qinglong_app/base/ql_app_bar.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:qinglong_app/base/theme.dart';
class OtherPage extends StatefulWidget {
class OtherPage extends ConsumerStatefulWidget {
const OtherPage({Key? key}) : super(key: key);
@override
_OtherPageState createState() => _OtherPageState();
}
class _OtherPageState extends State<OtherPage> {
class _OtherPageState extends ConsumerState<OtherPage> {
var toggleValue = false;
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
physics: const AlwaysScrollableScrollPhysics(),
child: Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
margin: const EdgeInsets.symmetric(horizontal: 15,vertical: 15,),
decoration: const BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(
Radius.circular(15),
),
),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.symmetric(
vertical: 10,
horizontal: 15,
),
child: Row(
children: [
Text(
"查看日志",
style: TextStyle(
color: ref.watch(themeProvider).themeColor.taskTitleColor(),
fontSize: 16,
),
),
const Spacer(),
const Icon(
CupertinoIcons.right_chevron,
size: 16,
),
],
),
),
Divider(
indent: 15,
),
Padding(
padding: const EdgeInsets.symmetric(
vertical: 10,
horizontal: 15,
),
child: Row(
children: [
Text(
"查看日志",
style: TextStyle(
color: ref.watch(themeProvider).themeColor.taskTitleColor(),
fontSize: 16,
),
),
const Spacer(),
const Icon(
CupertinoIcons.right_chevron,
size: 16,
),
],
),
),
Divider(
indent: 15,
),
Padding(
padding: const EdgeInsets.symmetric(
vertical: 10,
horizontal: 15,
),
child: Row(
children: [
Text(
"查看日志",
style: TextStyle(
color: ref.watch(themeProvider).themeColor.taskTitleColor(),
fontSize: 16,
),
),
const Spacer(),
const Icon(
CupertinoIcons.right_chevron,
size: 16,
),
],
),
),
],
),
),
],
),
);