forked from lxm_flutter/FlutterUnit
✨ 更新flutter版本 1.22.6 • channel stable
This commit is contained in:
@@ -24,10 +24,10 @@
|
||||
|
||||
```
|
||||
a1@toly ~ % flutter --version
|
||||
Flutter 1.22.5 • channel stable • https://github.com/flutter/flutter.git
|
||||
Framework • revision 7891006299 (4 weeks ago) • 2020-12-10 11:54:40 -0800
|
||||
Engine • revision ae90085a84
|
||||
Tools • Dart 2.10.4
|
||||
Flutter 1.22.6 • channel stable • https://github.com/flutter/flutter.git
|
||||
Framework • revision 9b2d32b605 (4 weeks ago) • 2021-01-22 14:36:39 -0800
|
||||
Engine • revision 2f0af37152
|
||||
Tools • Dart 2.10.5
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:intl/intl.dart';
|
||||
/// contact me by email 1981462002@qq.com
|
||||
/// 说明: 收藏夹展示数据模型
|
||||
|
||||
class CategoryModel extends Equatable{
|
||||
class CategoryModel extends Equatable {
|
||||
final int id;
|
||||
final String name;
|
||||
final String info;
|
||||
@@ -19,12 +19,12 @@ class CategoryModel extends Equatable{
|
||||
|
||||
CategoryModel(
|
||||
{this.name,
|
||||
this.id,
|
||||
this.info,
|
||||
this.createDate,
|
||||
this.imageCover,
|
||||
this.count,
|
||||
this.color});
|
||||
this.id,
|
||||
this.info,
|
||||
this.createDate,
|
||||
this.imageCover,
|
||||
this.count,
|
||||
this.color});
|
||||
|
||||
bool get canDelete => id > 1;
|
||||
|
||||
@@ -42,19 +42,27 @@ class CategoryModel extends Equatable{
|
||||
|
||||
@override
|
||||
List<Object> get props => [
|
||||
id,
|
||||
name,
|
||||
info,
|
||||
createDate,
|
||||
imageCover,
|
||||
count,
|
||||
color,
|
||||
];
|
||||
id,
|
||||
name,
|
||||
info,
|
||||
createDate,
|
||||
imageCover,
|
||||
count,
|
||||
color,
|
||||
];
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'CategoryModel{id: $id, name: $name, info: $info, createDate: $createDate, imageCover: $imageCover, count: $count, color: $color}';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Map toJson() => {
|
||||
"id": this.id,
|
||||
"name": this.name,
|
||||
"info": this.info,
|
||||
"createDate": this.createDate,
|
||||
"imageCover": this.imageCover,
|
||||
"count": this.count,
|
||||
"color": this.color.value,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_unit/app/res/cons.dart';
|
||||
import 'package:flutter_unit/app/res/str_unit.dart';
|
||||
@@ -5,6 +7,7 @@ import 'package:flutter_unit/app/router/unit_router.dart';
|
||||
import 'package:flutter_unit/app/res/style/behavior/no_scroll_behavior.dart';
|
||||
import 'package:flutter_unit/views/components/permanent/circle_image.dart';
|
||||
import 'package:flutter_unit/views/components/permanent/feedback_widget.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
/// create by 张风捷特烈 on 2020/6/16
|
||||
@@ -88,7 +91,7 @@ class VersionInfo extends StatelessWidget {
|
||||
ListTile(
|
||||
title: Text('检查数据库新版本',style: labelStyle),
|
||||
trailing: _nextIcon(context),
|
||||
onTap: () {
|
||||
onTap: () async{
|
||||
|
||||
},
|
||||
),
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter_unit/app/router/unit_router.dart';
|
||||
@@ -29,6 +30,7 @@ class CategoryPage extends StatelessWidget {
|
||||
SliverOverlapInjector(
|
||||
handle: NestedScrollView.sliverOverlapAbsorberHandleFor(ctx),
|
||||
),
|
||||
|
||||
_buildContent(context, state),
|
||||
SliverToBoxAdapter(
|
||||
child: NoMoreWidget(),
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter_unit/app/router/unit_router.dart';
|
||||
import 'package:flutter_unit/blocs/bloc_exp.dart';
|
||||
import 'package:flutter_unit/model/category_model.dart';
|
||||
import 'package:flutter_unit/repositories/itf/category_repository.dart';
|
||||
import 'package:flutter_unit/views/components/permanent/circle_image.dart';
|
||||
import 'package:flutter_unit/views/components/permanent/feedback_widget.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
|
||||
import 'category_page.dart';
|
||||
import 'like_widget_page.dart';
|
||||
@@ -67,7 +72,7 @@ class _CollectPageState extends State<CollectPage> with AutomaticKeepAliveClient
|
||||
),
|
||||
)),
|
||||
backgroundColor: BlocProvider.of<WidgetsBloc>(context).state.color,
|
||||
actions: <Widget>[_buildAddActionBuilder(context)],
|
||||
actions: <Widget>[_buildSyncAction(context),_buildAddAction(context)],
|
||||
title: Text(
|
||||
'收藏集 CollectUnit',
|
||||
style: TextStyle(
|
||||
@@ -110,13 +115,26 @@ class _CollectPageState extends State<CollectPage> with AutomaticKeepAliveClient
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildAddActionBuilder(BuildContext context) => IconButton(
|
||||
Widget _buildAddAction(BuildContext context) => IconButton(
|
||||
icon: Icon(
|
||||
Icons.add,
|
||||
size: 30,
|
||||
),
|
||||
onPressed: () => Scaffold.of(context).openEndDrawer());
|
||||
|
||||
Widget _buildSyncAction(BuildContext context) => IconButton(
|
||||
icon: Icon(
|
||||
Icons.cloud_upload_outlined,
|
||||
size: 25,
|
||||
),
|
||||
onPressed: () async{
|
||||
final dir = await getDownloadsDirectory();
|
||||
// CategoryRepository rep = BlocProvider.of<CategoryBloc>(context).repository;
|
||||
// List<CategoryModel> loadCategories = await rep.loadCategories();
|
||||
// String json1= jsonEncode(loadCategories);
|
||||
// print(json1);
|
||||
});
|
||||
|
||||
@override
|
||||
bool get wantKeepAlive => true;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter_unit/app/router/unit_router.dart';
|
||||
@@ -8,11 +9,12 @@ import 'package:flutter_unit/views/components/project/items/collect_widget_list_
|
||||
|
||||
/// create by 张风捷特烈 on 2020/6/16
|
||||
/// contact me by email 1981462002@qq.com
|
||||
/// 说明:
|
||||
/// 说明:
|
||||
|
||||
class LikeWidgetPage extends StatelessWidget {
|
||||
|
||||
final SliverGridDelegate gridDelegate = const SliverGridDelegateWithFixedCrossAxisCount(
|
||||
final SliverGridDelegate gridDelegate =
|
||||
const SliverGridDelegateWithFixedCrossAxisCount(
|
||||
crossAxisCount: 2,
|
||||
mainAxisSpacing: 10,
|
||||
crossAxisSpacing: 10,
|
||||
@@ -21,37 +23,36 @@ class LikeWidgetPage extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BlocBuilder<LikeWidgetBloc, LikeWidgetState>(
|
||||
builder: (ctx, state) {
|
||||
return CustomScrollView(
|
||||
slivers: <Widget>[
|
||||
SliverOverlapInjector(
|
||||
handle: NestedScrollView.sliverOverlapAbsorberHandleFor(ctx),
|
||||
),
|
||||
_buildContent(context, state),
|
||||
SliverToBoxAdapter(
|
||||
child: NoMoreWidget(),
|
||||
)
|
||||
],
|
||||
);
|
||||
});
|
||||
return BlocBuilder<LikeWidgetBloc, LikeWidgetState>(builder: (ctx, state) {
|
||||
return CustomScrollView(
|
||||
slivers: <Widget>[
|
||||
SliverOverlapInjector(
|
||||
handle: NestedScrollView.sliverOverlapAbsorberHandleFor(ctx),
|
||||
),
|
||||
_buildContent(context, state),
|
||||
SliverToBoxAdapter(
|
||||
child: NoMoreWidget(),
|
||||
)
|
||||
],
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Widget _buildContent(BuildContext context, LikeWidgetState state) {
|
||||
return SliverPadding(
|
||||
padding: EdgeInsets.only(top:10, left: 10, right: 10, bottom: 0),
|
||||
padding: EdgeInsets.only(top: 10, left: 10, right: 10, bottom: 0),
|
||||
sliver: SliverGrid(
|
||||
delegate: SliverChildBuilderDelegate(
|
||||
(_, index) => Container(
|
||||
child: GestureDetector(
|
||||
onTap: () =>
|
||||
_toDetailPage(context, state.widgets[index]),
|
||||
child: CollectWidgetListItem(
|
||||
data: state.widgets[index],
|
||||
onDeleteItemClick: (model) =>
|
||||
_deleteCollect(context, model),
|
||||
)),
|
||||
),
|
||||
(_, index) => Container(
|
||||
child: GestureDetector(
|
||||
onTap: () =>
|
||||
_toDetailPage(context, state.widgets[index]),
|
||||
child: CollectWidgetListItem(
|
||||
data: state.widgets[index],
|
||||
onDeleteItemClick: (model) =>
|
||||
_deleteCollect(context, model),
|
||||
)),
|
||||
),
|
||||
childCount: state.widgets.length),
|
||||
gridDelegate: gridDelegate),
|
||||
);
|
||||
@@ -65,5 +66,4 @@ class LikeWidgetPage extends StatelessWidget {
|
||||
BlocProvider.of<DetailBloc>(context).add(FetchWidgetDetail(model));
|
||||
Navigator.pushNamed(context, UnitRouter.widget_detail, arguments: model);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user