添加应用版本检查页

This commit is contained in:
toly
2020-06-16 13:02:29 +08:00
parent 5fe4ca91ae
commit ee14c6ea54
8 changed files with 156 additions and 19 deletions

View File

@@ -3,7 +3,7 @@ import 'package:flutter_unit/app/style/TolyIcon.dart';
import 'package:flutter_unit/components/permanent/code/highlighter_style.dart';
class Cons {
static String version = 'V1.1.0';
static String version = 'V1.1.1';
static const MENU_INFO = <String>["关于", "帮助", "问题反馈"]; //菜单栏
static const ICONS_MAP = {

View File

@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_unit/views/app/navigation/unit_navigation.dart';
import 'package:flutter_unit/views/pages/about/about_me_page.dart';
import 'package:flutter_unit/views/pages/about/about_app_page.dart';
import 'package:flutter_unit/views/pages/about/version_info.dart';
import 'package:flutter_unit/views/pages/category/category_detail.dart';
import 'package:flutter_unit/views/pages/category/collect_page.dart';
import 'package:flutter_unit/views/pages/search/serach_page.dart';
@@ -34,6 +35,7 @@ class Router {
static const String theme_color_setting = 'ThemeColorSettingPage';
static const String code_style_setting = 'CodeStyleSettingPage';
static const String item_style_setting = 'ItemStyleSettingPage';
static const String version_info = 'VersionInfo';
static const String category_show = 'CategoryShow';
@@ -66,6 +68,8 @@ class Router {
return Right2LeftRouter(child: CodeStyleSettingPage());
case item_style_setting:
return Right2LeftRouter(child: ItemStyleSettingPage());
case version_info:
return Right2LeftRouter(child: VersionInfo());
case attr:
return Right2LeftRouter(child: AttrUnitPage());

View File

@@ -0,0 +1,11 @@
import 'package:flutter/material.dart';
/// create by 张风捷特烈 on 2020/6/16
/// contact me by email 1981462002@qq.com
/// 说明:
class NoScrollBehavior extends ScrollBehavior {
@override
Widget buildViewportChrome(
BuildContext context, Widget child, AxisDirection axisDirection) => child;
}

View File

@@ -112,21 +112,6 @@ class AboutAppPage extends StatelessWidget {
child: Wrap(
spacing: 20,
children: <Widget>[
// FeedbackWidget(
// onPressed: () => _launchURL(
// "https://juejin.im/user/5b42c0656fb9a04fe727eb37"),
// child: Wrap(
// direction: Axis.vertical,
// crossAxisAlignment: WrapCrossAlignment.center,
// children: <Widget>[
// Icon(
// TolyIcon.icon_juejin,
// size: 35,
// color: Colors.blue,
// ),
// Text('掘金')
// ],
// )),
FeedbackWidget(
onPressed: () =>
_launchURL("https://github.com/toly1994328/FlutterUnit"),

View File

@@ -0,0 +1,128 @@
import 'package:flutter/material.dart';
import 'package:flutter_unit/app/res/cons.dart';
import 'package:flutter_unit/app/router.dart';
import 'package:flutter_unit/app/style/NoScrollBehavior.dart';
import 'package:flutter_unit/components/permanent/circle_image.dart';
import 'package:flutter_unit/components/permanent/feedback_widget.dart';
import 'package:url_launcher/url_launcher.dart';
/// create by 张风捷特烈 on 2020/6/16
/// contact me by email 1981462002@qq.com
/// 说明:
class VersionInfo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBar(
backgroundColor: Colors.white,
elevation: 0,
iconTheme: IconThemeData(
color: Colors.grey
),
),
body:ConstrainedBox(
constraints: BoxConstraints.expand(),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Padding(
padding: const EdgeInsets.only(top:28.0),
child: _buildTop(),
),
_buildCenter(context),
Spacer(),
Padding(
padding: const EdgeInsets.only(bottom:8.0),
child: buildBottom(),
)
],
),
),
);
}
Widget _buildTop() {
return Wrap(
direction: Axis.vertical,
crossAxisAlignment: WrapCrossAlignment.center,
spacing: 10,
children: <Widget>[
CircleImage(image: AssetImage("assets/images/icon_head.png"),size: 80,),
Text('Flutter Unit',style: TextStyle(fontSize: 20,fontWeight: FontWeight.bold),),
Text('Version ${Cons.version}'),
],
);
}
Widget _buildCenter(BuildContext context) {
final labelStyle= TextStyle(fontSize: 13);
return Padding(
padding: const EdgeInsets.only(left:20.0,right: 20,top: 20),
child: ScrollConfiguration(
behavior: NoScrollBehavior(),
child: ListView(
shrinkWrap: true,
children: <Widget>[
Divider(height: 1,),
ListTile(
title: Text('应用详情',style: labelStyle,),
trailing: _nextIcon(context),
onTap: () => Navigator.of(context).pushNamed(Router.about_app),
),
Divider(height: 1,indent: 10),
ListTile(
title: Text('检查新版本',style: labelStyle),
trailing: _nextIcon(context),
onTap: () {
},
),
Divider(height: 1,indent: 10),
ListTile(
title: Text('检查数据库新版本',style: labelStyle),
trailing: _nextIcon(context),
onTap: () {
},
),
Divider(height: 1,),
],
),
),
);
}
Widget _nextIcon(BuildContext context) =>
Icon(Icons.chevron_right, color: Colors.grey);
Widget buildBottom() {
return Wrap(
direction: Axis.vertical,
crossAxisAlignment: WrapCrossAlignment.center,
spacing: 4,
children: <Widget>[
FeedbackWidget(
onPressed: (){
_launchURL("https://github.com/toly1994328/FlutterUnit");
},
child: Text('《查看本项目Github仓库》',style: TextStyle(fontSize: 12,color: Color(0xff616C84),),)),
Text('Power By 张风捷特烈',style: TextStyle(fontSize: 12,color: Colors.grey),),
Text('Copyright © 2008-2020 Toly1994',style: TextStyle(fontSize: 12,color: Colors.grey),),
],
);
}
_launchURL(String url) async {
if (await canLaunch(url)) {
await launch(url);
} else {
}
}
}

View File

@@ -27,7 +27,7 @@ class HomeDrawer extends StatelessWidget {
padding: EdgeInsets.zero,
children: <Widget>[
UnitDrawerHeader(color: color),
_buildItem(context, TolyIcon.icon_them, '我的主题', Router.setting),
_buildItem(context, TolyIcon.icon_them, '应用设置', Router.setting),
_buildItem(context, TolyIcon.icon_layout, '数据统计', null),
Divider(height: 1),
_buildFlutterUnit(context),

View File

@@ -18,7 +18,7 @@ class HomePage extends StatefulWidget {
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin{
class _HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin{
ScrollController _ctrl;
double _limitY = 35;
double _height = kToolbarHeight * 2 - 20;

View File

@@ -14,7 +14,7 @@ class SettingPage extends StatelessWidget {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('主题设置'),
title: Text('应用设置'),
),
body: ListView(
children: <Widget>[
@@ -59,6 +59,15 @@ class SettingPage extends StatelessWidget {
),
Divider(),
_buildShowBg(context),
ListTile(
leading: Icon(
Icons.info,
color: Theme.of(context).primaryColor,
),
title: Text('版本信息'),
trailing: _nextIcon(context),
onTap: () => Navigator.of(context).pushNamed(Router.version_info),
),
],
),
);