add homepage

This commit is contained in:
jyuesong
2022-01-12 15:00:55 +08:00
parent 7bfae045fb
commit 9f7164db48
15 changed files with 786 additions and 135 deletions

0
lib/module/a.dart Normal file
View File

View File

@@ -0,0 +1,15 @@
import 'package:flutter/material.dart';
class ConfigPage extends StatefulWidget {
const ConfigPage({Key? key}) : super(key: key);
@override
_ConfigPageState createState() => _ConfigPageState();
}
class _ConfigPageState extends State<ConfigPage> {
@override
Widget build(BuildContext context) {
return Scaffold();
}
}

16
lib/module/env/env_page.dart vendored Normal file
View File

@@ -0,0 +1,16 @@
import 'package:flutter/material.dart';
class EnvPage extends StatefulWidget {
const EnvPage({Key? key}) : super(key: key);
@override
_EnvPageState createState() => _EnvPageState();
}
class _EnvPageState extends State<EnvPage> {
@override
Widget build(BuildContext context) {
return Scaffold();
}
}

View File

@@ -0,0 +1,117 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:qinglong_app/base/ql_app_bar.dart';
import 'package:qinglong_app/base/theme.dart';
import 'package:qinglong_app/module/config/config_page.dart';
import 'package:qinglong_app/module/env/env_page.dart';
import 'package:qinglong_app/module/others/other_page.dart';
import 'package:qinglong_app/module/task/task_page.dart';
class HomePage extends StatefulWidget {
const HomePage({Key? key}) : super(key: key);
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
int _index = 0;
String _title = "";
List<IndexBean> titles = [];
@override
void initState() {
initTitles();
_title = titles[0].title;
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: QlAppBar(
canBack: false,
title: _title,
actions: [
Consumer(builder: (context, ref, child) {
return InkWell(
onTap: () {
ref.read(themeProvider).changeTheme();
},
child: Center(child: Text("改变主题")),
);
}),
],
),
body: IndexedStack(
index: _index,
children: const [
TaskPage(),
EnvPage(),
ConfigPage(),
OtherPage(),
],
),
bottomNavigationBar: BottomNavigationBar(
items: titles
.map(
(e) => BottomNavigationBarItem(
icon: Icon(e.icon),
activeIcon: Icon(e.checkedIcon),
label: e.title,
),
)
.toList(),
currentIndex: _index,
onTap: (index) {
_index = index;
_title = titles[index].title;
setState(() {});
},
type: BottomNavigationBarType.fixed,
),
);
}
void initTitles() {
titles.clear();
titles.add(
IndexBean(
CupertinoIcons.timer,
CupertinoIcons.timer_fill,
"定时任务",
),
);
titles.add(
IndexBean(
CupertinoIcons.hammer,
CupertinoIcons.hammer_fill,
"环境变量",
),
);
titles.add(
IndexBean(
CupertinoIcons.settings,
CupertinoIcons.settings_solid,
"配置文件",
),
);
titles.add(
IndexBean(
CupertinoIcons.cube,
CupertinoIcons.cube_fill,
"其他",
),
);
}
}
class IndexBean {
IconData icon;
IconData checkedIcon;
String title;
IndexBean(this.icon, this.checkedIcon, this.title);
}

View File

@@ -0,0 +1,15 @@
import 'package:flutter/material.dart';
class OtherPage extends StatefulWidget {
const OtherPage({Key? key}) : super(key: key);
@override
_OtherPageState createState() => _OtherPageState();
}
class _OtherPageState extends State<OtherPage> {
@override
Widget build(BuildContext context) {
return Scaffold();
}
}

View File

@@ -0,0 +1,33 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:qinglong_app/base/base_state_widget.dart';
import 'package:qinglong_app/module/task/task_viewmodel.dart';
class TaskPage extends StatefulWidget {
const TaskPage({Key? key}) : super(key: key);
@override
_TaskPageState createState() => _TaskPageState();
}
class _TaskPageState extends State<TaskPage> {
@override
Widget build(BuildContext context) {
return BaseStateWidget<TaskViewModel>(
builder: (context, model, child) {
return ListView.builder(
itemBuilder: (context, index) {
return ListTile(
title: Text(model.list[index]),
);
},
itemCount: model.list.length,
);
},
model: taskProvider,
onReady: (viewModel) {
viewModel.loadData();
},
);
}
}

View File

@@ -0,0 +1,31 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:qinglong_app/base/base_viewmodel.dart';
var taskProvider = ChangeNotifierProvider((ref) => TaskViewModel());
class TaskViewModel extends BaseViewModel {
List<String> list = [];
void loadData() {
loading(notify: true);
Future.delayed(Duration(seconds: 2), () {
list.add("sdfsf");
list.add("sdfsf");
list.add("sdfsf");
list.add("sdfsf");
list.add("sdfsf");
list.add("sdfsf");
list.add("sdfsf");
list.add("sdfsf");
list.add("sdfsf");
list.add("sdfsf");
list.add("sdfsf");
list.add("sdfsf");
list.add("sdfsf");
list.add("sdfsf");
list.add("sdfsf");
success();
});
}
}