This commit is contained in:
toly
2020-04-13 20:34:49 +08:00
parent bc91501311
commit 36be08ca64
42 changed files with 52 additions and 2576 deletions

View File

@@ -7,8 +7,8 @@
FlutterApplication and put your custom class here. -->
<application
android:name="io.flutter.app.FlutterApplication"
android:label="flutter_unit"
android:icon="@mipmap/ic_launcher">
android:label="FlutterUnit"
android:icon="@mipmap/logo">
<activity
android:name=".MainActivity"
android:launchMode="singleTop"

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 856 KiB

After

Width:  |  Height:  |  Size: 314 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 KiB

After

Width:  |  Height:  |  Size: 144 KiB

View File

@@ -1,153 +0,0 @@
import 'dart:math';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
/// create by 张风捷特烈 on 2020-03-07
/// contact me by email 1981462002@qq.com
/// 说明:
class FunSplash extends StatefulWidget {
final double size;
FunSplash({this.size = 200});
@override
_FunSplashState createState() => _FunSplashState();
}
class _FunSplashState extends State<FunSplash>
with SingleTickerProviderStateMixin {
AnimationController _controller;
double _factor;
Animation _rotate;
@override
void initState() {
_controller =
AnimationController(duration: Duration(milliseconds: 5000), vsync: this)
..addListener(() => setState(() {
return _factor = _rotate.value;
}));
_rotate = CurvedAnimation(parent: _controller, curve: Curves.bounceOut);
_controller.forward();
super.initState();
}
@override
Widget build(BuildContext context) {
return Material(
child: GestureDetector(
onTap: () {
_controller.reset();
_controller.forward();
},
child: Stack(
alignment: Alignment.center,
children: <Widget>[
FlutterLogo(),
CustomPaint(
painter: UnitPainter(factor: _factor),
),
],
),
),
);
}
}
class UnitPainter extends CustomPainter {
Paint _paint;
double width;
double factor;
Path _path1 = Path();
Path _path2 = Path();
Path _path3 = Path();
Path _path4 = Path();
UnitPainter({this.width = 200.0, this.factor}) {
_paint = Paint()
..color = Colors.black
..isAntiAlias = true;
}
@override
void paint(Canvas canvas, Size size) {
canvas.translate(
size.width / 2 - width * 0.5, size.height / 2 - width * 0.5);
canvas.save();
canvas.translate(
-size.width / 2 * (1 - factor), -size.width / 2 * (1 - factor));
drawColor1(canvas);
canvas.restore();
canvas.save();
canvas.translate(
size.width / 2 * (1 - factor), -size.width / 2 * (1 - factor));
drawColor2(canvas);
canvas.restore();
canvas.save();
canvas.translate(
size.width / 2 * (1 - factor), size.width / 2 * (1 - factor));
drawColor3(canvas);
canvas.restore();
canvas.save();
canvas.translate(
-size.width / 2 * (1 - factor), size.width / 2 * (1 - factor));
drawColor4(canvas);
canvas.restore();
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return true;
}
void drawColor1(Canvas canvas) {
_path1.moveTo(0, 0);
_path1.lineTo(width * 0.618*factor - 1, 0);
_path1.lineTo(width * 0.5 - 1, width * 0.5 - 1);
_path1.lineTo(0, width * (1 - 0.618)*factor - 1);
canvas.drawPath(_clipAngle(_path1), _paint..color = Colors.red);
}
void drawColor2(Canvas canvas) {
_path2.moveTo(width * 0.618*factor, 0);
_path2.lineTo(width, 0);
_path2.lineTo(width, width * 0.618*factor );
_path2.lineTo(width * 0.5, width * 0.5);
canvas.drawPath(_clipAngle(_path2), _paint..color = Colors.blue);
}
void drawColor3(Canvas canvas) {
_path3.moveTo(width * 0.5 + 1, width * 0.5 + 1);
_path3.lineTo(width, width * 0.618*factor + 1);
_path3.lineTo(width, width);
_path3.lineTo(width * (1 - 0.618)*factor + 1, width);
canvas.drawPath(_clipAngle(_path3), _paint..color = Colors.green);
}
void drawColor4(Canvas canvas) {
_path4.moveTo(0, width * (1 - 0.618)*factor);
_path4.lineTo(width * 0.5, width * 0.5);
_path4.lineTo(width * (1 - 0.618)*factor, width);
_path4.lineTo(0, width);
canvas.drawPath(_clipAngle(_path4), _paint..color = Colors.yellow);
}
Path _clipAngle(Path path){
return Path.combine(
PathOperation.difference,
path,
Path()
..addOval(Rect.fromCircle(
center: Offset(width * 0.5, width * 0.5), radius: 25.0)));
}
}

View File

@@ -13,7 +13,7 @@ import 'package:flutter_unit/views/search/serach_page.dart';
import 'package:flutter_unit/views/pages/setting/setting_page.dart';
import 'package:flutter_unit/views/pages/navigation/unit_navigation.dart';
import 'router_utils.dart';
import 'utils/router_utils.dart';
class Router {
static const String detail = 'detail';

View File

@@ -1,59 +0,0 @@
import 'package:flutter/material.dart';
/// create by 张风捷特烈 on 2020-03-06
/// contact me by email 1981462002@qq.com
/// 说明: 打个洞
/// offset 洞的偏移量分率 x,y 在 0~1 之间
/// size 洞的大小
class CornerShapeBorder extends ShapeBorder {
final Offset offset;
CornerShapeBorder({this.offset=const Offset(0.1, 0.1)});
@override
EdgeInsetsGeometry get dimensions => null;
@override
Path getInnerPath(Rect rect, {TextDirection textDirection}) {
var path = Path();
path.addRRect(RRect.fromRectAndRadius(rect, Radius.circular(5)));
return path;
}
@override
Path getOuterPath(Rect rect, {TextDirection textDirection}) {
var path = Path();
path.addRRect(RRect.fromRectAndRadius(rect, Radius.circular(10)));
var w = rect.width;
var h = rect.height;
var offsetXY = Offset( offset.dx*w,offset.dy*h);
_getHold(path , offsetXY);
path.fillType = PathFillType.evenOdd;
return path;
}
_getHold(Path path, Offset offset) {
path.moveTo(0,0);
path.lineTo(offset.dx, 0);
path.lineTo(0, offset.dy);
// var left = offset.dx;
// var top = offset.dy;
// var right = left + d;
// var bottom = top + d;
// path.addOval(Rect.fromLTRB(left, top, right, bottom));
}
@override
void paint(Canvas canvas, Rect rect, {TextDirection textDirection}) {
}
@override
ShapeBorder scale(double t) {
// TODO: implement scale
return null;
}
}

View File

@@ -1,59 +0,0 @@
import 'package:flutter/material.dart';
/// create by 张风捷特烈 on 2020-03-06
/// contact me by email 1981462002@qq.com
/// 说明: 打个洞
/// offset 洞的偏移量分率 x,y 在 0~1 之间
/// size 洞的大小
class HoleShapeBorder extends ShapeBorder {
final Offset offset;
final double size;
HoleShapeBorder({this.offset=const Offset(0.1, 0.1), this.size=20});
@override
EdgeInsetsGeometry get dimensions => null;
@override
Path getInnerPath(Rect rect, {TextDirection textDirection}) {
var path = Path();
path.addRRect(RRect.fromRectAndRadius(rect, Radius.circular(5)));
return path;
}
@override
Path getOuterPath(Rect rect, {TextDirection textDirection}) {
var path = Path();
path.addRect(rect);
// path.addRRect(RRect.fromRectAndRadius(rect, Radius.circular(10)));
print(rect);
var w = rect.width;
var h = rect.height;
var offsetXY = Offset( offset.dx*w,offset.dy*h);
var d = size;
_getHold(path, 1, d, offsetXY);
path.fillType = PathFillType.evenOdd;
return path;
}
_getHold(Path path, int count, double d, Offset offset) {
var left = offset.dx;
var top = offset.dy;
var right = left + d;
var bottom = top + d;
path.addOval(Rect.fromLTRB(left, top, right, bottom));
}
@override
void paint(Canvas canvas, Rect rect, {TextDirection textDirection}) {
}
@override
ShapeBorder scale(double t) {
// TODO: implement scale
return null;
}
}

View File

@@ -1,7 +1,7 @@
import 'package:equatable/equatable.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_unit/database/widget_dao.dart';
import 'package:flutter_unit/storage/widget_dao.dart';
import 'package:flutter_unit/repositorys/widget_repository.dart';
import 'collect_event.dart';

View File

@@ -1,5 +1,5 @@
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_unit/app/app_storage.dart';
import 'package:flutter_unit/storage/app_storage.dart';
import 'package:flutter_unit/app/res/cons.dart';
import 'package:flutter_unit/app/res/sp.dart';
import 'package:shared_preferences/shared_preferences.dart';
@@ -15,7 +15,10 @@ class GlobalBloc extends Bloc<GlobalEvent, GlobalState> {
@override
GlobalState get initialState => GlobalState();
AppStorage storage = AppStorage();
final AppStorage storage ;
GlobalBloc(this.storage);
Future<SharedPreferences> get sp => storage.sp;

View File

@@ -1,6 +1,6 @@
import 'package:flutter_unit/database/widget_dao.dart';
import 'package:flutter_unit/storage/widget_dao.dart';
abstract class SearchEvent{//事件基
const SearchEvent();

View File

@@ -1,7 +1,7 @@
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:flutter_unit/app/enums.dart';
import 'package:flutter_unit/database/po/widget_po.dart';
import 'package:flutter_unit/storage/po/widget_po.dart';
import 'package:flutter_unit/model/widget_model.dart';

View File

@@ -26,6 +26,7 @@ class AnimatedTextState extends State<AnimatedText>
int curIndex = 0;
@override
void initState() {
super.initState();

View File

@@ -1,73 +0,0 @@
import 'package:flutter/material.dart';
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
class FlutterDb {
FlutterDb._(); //私有化构造
static final FlutterDb db = FlutterDb._(); //提供实例
static const db_name = "flutter.db"; //数据库名
Database _database; //数据库
Future<Database> get database async {
//获取数据库对象
_database = _database ?? await initDB();
return _database;
}
static const String sql_create_widget = """
CREATE TABLE IF NOT EXISTS widget(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(64) NOT NULL UNIQUE,
nameCN VARCHAR(12) NOT NULL,
collected INTEGER DEFAULT 0,
family INTEGER NOT NULL,
lever FLOAT(2) NOT NULL,
image VARCHAR(128) NOT NULL,
linkWidget TEXT DEFAULT '',
info VARCHAR(256) NOT NULL
);"""; //建表语句
static const String sql_create_node = """
CREATE TABLE IF NOT EXISTS node(
id INTEGER PRIMARY KEY AUTOINCREMENT,
widgetId INTEGER NOT NULL,
name VARCHAR(64) NOT NULL,
priority INTEGER DEFAULT 0,
subtitle TEXT NOT NULL,
code TEXT NOT NULL
);"""; //建表语句
static const String sql_create_category = """
CREATE TABLE IF NOT EXISTS category(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(64) NOT NULL,
info VARCHAR(128)
);"""; //建表语句
static const String sql_create_category_widget = """
CREATE TABLE IF NOT EXISTS category_widget(
id INTEGER PRIMARY KEY AUTOINCREMENT,
widgetId INTEGER NOT NULL,
categoryId INTEGER NOT NULL
);"""; //建表语句
Future<Database> initDB() async {
//初始化数据库
WidgetsFlutterBinding.ensureInitialized(); //初始化绑定
String path = join(await getDatabasesPath(), db_name); //获取数据库路径
return await openDatabase(
//打开数据库
path, //路径
version: 1, //版本
onOpen: (db) => print("数据库-------onOpen"),
onUpgrade: (db, old, now) => print("数据库-------onUpgrade"),
onCreate: (Database db, int version) async {
print("数据库-------onCreate");
await db.execute(sql_create_widget);
await db.execute(sql_create_node);
await db.execute(sql_create_category);
await db.execute(sql_create_category_widget);
},
);
}
}

View File

@@ -4,6 +4,7 @@ import 'package:flutter_unit/app/enums.dart';
import 'package:flutter_unit/blocs/collect/collect_event.dart';
import 'package:flutter_unit/blocs/search/search_bloc.dart';
import 'package:flutter_unit/repositorys/widget_db_repository.dart';
import 'package:flutter_unit/storage/app_storage.dart';
import 'package:flutter_unit/views/splash/unit_splash.dart';
//import 'tools/initial.dart';
@@ -26,12 +27,13 @@ void main() async {
runApp(BlocWrapper(child: FlutterApp()));
}
final storage = AppStorage();
class BlocWrapper extends StatelessWidget {
final Widget child;
BlocWrapper({this.child});
final repository = WidgetDbRepository();
final repository = WidgetDbRepository(storage);
@override
Widget build(BuildContext context) {
@@ -39,7 +41,7 @@ class BlocWrapper extends StatelessWidget {
providers: [
//Bloc提供器
BlocProvider<GlobalBloc>(
create: (_) => GlobalBloc()..add(EventInitApp())),
create: (_) => GlobalBloc(storage)..add(EventInitApp())),
BlocProvider<HomeBloc>(
create: (_) => HomeBloc(repository: repository)
..add(EventTabTap(WidgetFamily.statelessWidget))),

View File

@@ -1,23 +0,0 @@
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
class Node extends Equatable {
final String name;
final String subtitle;
final String code;
final Widget widget;
const Node({this.name, this.subtitle, this.code,this.widget});
@override
List<Object> get props => [name, subtitle, code];
factory Node.fromJson(Map<String, dynamic> map,Widget widget) {
return Node(
name: map['name'],
subtitle: map["subtitle"],
widget:widget,
code: map["code"]);
}
}

View File

@@ -1,28 +0,0 @@
import 'package:flutter/material.dart';
class WidgetItem {
final String name;
final String nameCN;
final ImageProvider image;
final String info;
final double lever;
const WidgetItem({this.name, this.nameCN, this.image, this.info, this.lever});
factory WidgetItem.fromJson(Map<String, dynamic> map) {
var image = AssetImage(map["image"]);
return WidgetItem(
name: map['name'],
nameCN: map["nameCN"],
lever: map["lever"],
image: image,
info: map["info"]);
}
@override
String toString() {
return 'WidgetItem{name: $name, nameCN: $nameCN, image: $image, info: $info, lever: $lever}';
}
}

View File

@@ -1,9 +1,9 @@
import 'package:equatable/equatable.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_unit/app/Convert.dart';
import 'package:flutter_unit/app/convert.dart';
import 'package:flutter_unit/app/enums.dart';
import 'package:flutter_unit/app/res/cons.dart';
import 'package:flutter_unit/database/po/widget_po.dart';
import 'package:flutter_unit/storage/po/widget_po.dart';
enum WidgetType {
singe_show, //单一展示型 0

View File

@@ -1,11 +1,11 @@
import 'package:flutter_unit/app/app_storage.dart';
import 'package:flutter_unit/storage/app_storage.dart';
import 'package:flutter_unit/app/enums.dart';
import 'package:flutter_unit/database/node_dao.dart';
import 'package:flutter_unit/database/po/widget_po.dart';
import 'package:flutter_unit/database/widget_dao.dart';
import 'package:flutter_unit/storage/node_dao.dart';
import 'package:flutter_unit/storage/po/widget_po.dart';
import 'package:flutter_unit/storage/widget_dao.dart';
import 'package:flutter_unit/model/node_model.dart';
import 'package:flutter_unit/model/widget_model.dart';
import 'package:flutter_unit/repositorys/widget_repository.dart';
@@ -15,12 +15,13 @@ import 'package:flutter_unit/repositorys/widget_repository.dart';
/// 说明 : Widget数据仓库
class WidgetDbRepository implements WidgetRepository {
AppStorage storage;
final AppStorage storage;
WidgetDao _widgetDao;
NodeDao _nodeDao;
WidgetDbRepository() {
WidgetDbRepository(this.storage){
_widgetDao = WidgetDao(storage);
_nodeDao = NodeDao(storage);
}

View File

@@ -1,63 +0,0 @@
//
//
//
//import 'dart:convert';
//
//import 'package:flutter/services.dart';
//import 'package:flutter_unit/app/enums.dart';
//import 'package:flutter_unit/database/node_dao.dart';
//import 'package:flutter_unit/database/po/widget_po.dart';
//import 'package:flutter_unit/database/widget_dao.dart';
//import 'package:flutter_unit/model/node_model.dart';
//import 'package:flutter_unit/model/widget_model.dart';
//import 'package:flutter_unit/repositorys/widget_repository.dart';
//import 'package:flutter_unit/tools/node_data.dart';
///// create by 张风捷特烈 on 2020-03-03
///// contact me by email 1981462002@qq.com
///// 说明 : Widget数据仓库
//
//class WidgetMeRepository implements WidgetRepository {
//
//
// @override
// Future<List<WidgetModel>> loadWidgets(WidgetFamily family) async {
// var jsonStr = await rootBundle.loadString('assets/data/widget.json');
// var widgets = (json.decode(jsonStr)["items"] as List)
// .map((item) => WidgetPo.fromJson(item))
// .toList();
// var where = widgets.map(WidgetModel.fromPo).where((e)=>e.family==family).toList();
// return where;
// }
//
// @override
// Future<List<NodeModel>> loadNode(WidgetModel widgetModel) async{
// return nodeData[widgetModel.name].map((e)=>NodeModel.fromJson(e)).toList();
// }
//
// @override
// Future<List<WidgetModel>> searchWidgets(SearchArgs args) {
// return null;
// }
//
// @override
// Future<List<WidgetModel>> loadWidget(List<int> ids) async{
// var jsonStr = await rootBundle.loadString('assets/data/widget.json');
// var widgets = (json.decode(jsonStr)["items"] as List)
// .map((item) => WidgetPo.fromJson(item))
// .toList();
// var where = widgets.map(WidgetModel.fromPo).where((e)=>ids.contains(e.id)).toList();
// return where;
// }
//
// @override
// Future<List<WidgetModel>> loadCollectWidgets() async{
// // TODO: implement loadCollectWidgets
// return [];
// }
//
// @override
// Future<void> toggleCollect(int id) {
// // TODO: implement setCollect
// return null;
// }
//}

View File

@@ -1,7 +1,7 @@
import 'package:flutter_unit/app/enums.dart';
import 'package:flutter_unit/database/widget_dao.dart';
import 'package:flutter_unit/storage/widget_dao.dart';
import 'package:flutter_unit/model/node_model.dart';
import 'package:flutter_unit/model/widget_model.dart';

View File

@@ -23,14 +23,14 @@ class AppStorage {
}
Future<Database> get db async {
_database = _database ?? await SharedPreferences.getInstance();
_database = _database ?? await initDb();
return _database;
}
// App
Future<GlobalState> initApp() async {
var prefs = await sp;
await initDb();
_database = await initDb();
var showBg = prefs.getBool(SP.showBackground) ?? true;
var themeIndex = prefs.getInt(SP.themeColorIndex) ?? 4;
var fontIndex = prefs.getInt(SP.fontFamily) ?? 1;
@@ -63,6 +63,6 @@ class AppStorage {
} else {
print("Opening existing database");
}
return await openDatabase(dbPath, readOnly: true);
return await openDatabase(dbPath, readOnly: false);
}
}

View File

@@ -1,4 +1,4 @@
import 'package:flutter_unit/app/app_storage.dart';
import 'package:flutter_unit/storage/app_storage.dart';
import 'po/node_po.dart';

View File

@@ -1,4 +1,4 @@
import 'package:flutter_unit/app/app_storage.dart';
import 'package:flutter_unit/storage/app_storage.dart';
import 'package:flutter_unit/app/enums.dart';
import 'po/widget_po.dart';

View File

@@ -22,7 +22,7 @@ class CollectWidgetListItem extends StatelessWidget {
shape: TechnoShapeBorder(color: itemColor),
child: Container(
height: 95,
padding: EdgeInsets.only(top: 10, left: 10, right: 10, bottom: 5),
padding: EdgeInsets.only(top: 10, left: 5, right: 10, bottom: 5),
child: Row(
children: <Widget>[
_buildLeading(),
@@ -48,8 +48,8 @@ class CollectWidgetListItem extends StatelessWidget {
),
),
Positioned(
bottom: 10,
right: 10,
bottom: 5,
right: 5,
child: FeedbackWidget(
onPressed: (){
if(onDelectItemClick!=null){
@@ -72,13 +72,13 @@ class CollectWidgetListItem extends StatelessWidget {
color: Colors.transparent,
child: CircleText(
text: data.name,
size: 60,
size: 50,
color: itemColor,
),
)
: CircleImage(
image: data.image,
size: 60,
size: 50,
),
);
@@ -104,7 +104,7 @@ class CollectWidgetListItem extends StatelessWidget {
Widget _buildSummary() {
return Padding(
padding: const EdgeInsets.only(left: 0, bottom: 10, top: 5),
padding: const EdgeInsets.only(left: 5, bottom: 10, top: 5),
child: Container(
child: Text(
data.nameCN,

View File

@@ -1,7 +1,7 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_unit/app/Convert.dart';
import 'package:flutter_unit/app/convert.dart';
import 'package:flutter_unit/app/router.dart';
import 'package:flutter_unit/blocs/detail/detail_bloc.dart';
import 'package:flutter_unit/blocs/detail/detail_event.dart';

View File

@@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_unit/app/res/cons.dart';
import 'package:flutter_unit/app/style/shape/hole_shape.dart';
import 'package:flutter_unit/components/permanent/circle.dart';
class TolyAppBar extends StatefulWidget implements PreferredSizeWidget {

View File

@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_unit/blocs/search/search_bloc.dart';
import 'package:flutter_unit/blocs/search/search_event.dart';
import 'package:flutter_unit/database/widget_dao.dart';
import 'package:flutter_unit/storage/widget_dao.dart';
class AppSearchBar extends StatefulWidget {

View File

@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_unit/blocs/search/search_bloc.dart';
import 'package:flutter_unit/blocs/search/search_event.dart';
import 'package:flutter_unit/database/widget_dao.dart';
import 'package:flutter_unit/storage/widget_dao.dart';
/// create by 张风捷特烈 on 2020-04-07
/// contact me by email 1981462002@qq.com

View File

@@ -10,7 +10,7 @@ import 'package:flutter_unit/blocs/search/search_bloc.dart';
import 'package:flutter_unit/blocs/search/search_event.dart';
import 'package:flutter_unit/blocs/search/search_state.dart';
import 'package:flutter_unit/components/permanent/circle.dart';
import 'package:flutter_unit/database/widget_dao.dart';
import 'package:flutter_unit/storage/widget_dao.dart';
import 'package:flutter_unit/model/widget_model.dart';
import 'package:flutter_unit/views/items/techno_widget_list_item.dart';
import 'package:flutter_unit/views/pages/search/app_search_bar.dart';

View File

@@ -94,12 +94,14 @@ class _UnitSplashState extends State<UnitSplash> with TickerProviderStateMixin {
],
);
return GestureDetector(
onTap: () {
_controller.reset();
_controller.forward();
},
child: Scaffold(
return
// GestureDetector(
// onTap: () {
// _controller.reset();
// _controller.forward();
// },
// child:
Scaffold(
body: Stack(
alignment: Alignment.center,
children: <Widget>[
@@ -137,7 +139,7 @@ class _UnitSplashState extends State<UnitSplash> with TickerProviderStateMixin {
buildPower(),
],
),
),
// ),
);
}

View File

@@ -47,7 +47,7 @@ flutter:
- assets/images/
- assets/images/head_icon/
- assets/images/widgets/
- assets/data/widget.json
# - assets/data/widget.json
- assets/flutter.db
# To add assets to your application, add an assets section, like this:
# assets: