diff --git a/analysis_options.yaml b/analysis_options.yaml index 61b6c4d..2fdeaeb 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -22,7 +22,8 @@ linter: # `// ignore_for_file: name_of_lint` syntax on the line or in the file # producing the lint. rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule + avoid_print: false # Uncomment to disable the `avoid_print` rule + file_names: false # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule # Additional information about this file can be found at diff --git a/assets/iconfont/icon_builder.dart b/assets/iconfont/icon_builder.dart index 48f6fc8..c250077 100644 --- a/assets/iconfont/icon_builder.dart +++ b/assets/iconfont/icon_builder.dart @@ -20,7 +20,7 @@ class $fontName { String read = await fileCss.readAsString(); List split = read.split(".icon-"); - split.forEach((str) { + for (String str in split) { if (str.contains("before")) { List split = str.split(":"); result += "static const IconData " + @@ -29,7 +29,7 @@ class $fontName { split[2].replaceAll("\"\\", "0x").split("\"")[0] + ", fontFamily: \"$fontName\");\n"; } - }); + } result+="}"; fileCss.delete();//删除css文件 @@ -43,7 +43,7 @@ class $fontName { fonts: - family: $fontName fonts: - - asset: """+"$resDir/iconfont.ttf"; + - asset: $resDir/iconfont.ttf"""; print("build OK:\n $config"); } \ No newline at end of file diff --git a/lib/app/blocs/global/global_bloc.dart b/lib/app/blocs/global/global_bloc.dart index 7f76193..4ea91df 100644 --- a/lib/app/blocs/global/global_bloc.dart +++ b/lib/app/blocs/global/global_bloc.dart @@ -17,7 +17,7 @@ class GlobalBloc extends Bloc { final AppStart storage; - GlobalBloc(this.storage) : super(GlobalState()) { + GlobalBloc(this.storage) : super(const GlobalState()) { on(_onEventInitApp); on(_onEventSwitchFontFamily); on(_onEventSwitchThemeColor); @@ -38,8 +38,7 @@ class GlobalBloc extends Bloc { void _onEventSwitchFontFamily( EventSwitchFontFamily event, Emitter emit) async { int familyIndex = Cons.fontFamilySupport.indexOf(event.family); - await sp - ..setInt(SP.fontFamily, familyIndex); + (await sp).setInt(SP.fontFamily, familyIndex); emit(state.copyWith(fontFamily: event.family)); } @@ -47,16 +46,14 @@ class GlobalBloc extends Bloc { void _onEventSwitchThemeColor( EventSwitchThemeColor event, Emitter emit) async { int themeIndex = Cons.themeColorSupport.keys.toList().indexOf(event.color); - await sp - ..setInt(SP.themeColorIndex, themeIndex); + (await sp).setInt(SP.themeColorIndex, themeIndex); emit(state.copyWith(themeColor: event.color)); } // 切换背景显示事件处理 : 固化数据 + 产出新状态 void _onEventSwitchShowBg( EventSwitchShowBg event, Emitter emit) async { - await sp - ..setBool(SP.showBackground, event.show); + (await sp).setBool(SP.showBackground, event.show); emit(state.copyWith(showBackGround: event.show)); } @@ -69,16 +66,14 @@ class GlobalBloc extends Bloc { // 切换code样式事件处理 : 固化索引 + 产出新状态 void _onEventSwitchCoderTheme( EventSwitchCoderTheme event, Emitter emit) async { - await sp - ..setInt(SP.codeStyleIndex, event.codeStyleIndex); + (await sp).setInt(SP.codeStyleIndex, event.codeStyleIndex); emit(state.copyWith(codeStyleIndex: event.codeStyleIndex)); } // 切换item样式事件处理 : 固化索引 + 产出新状态 void _onEventChangeItemStyle( EventChangeItemStyle event, Emitter emit) async { - await sp - ..setInt(SP.itemStyleIndex, event.index); + (await sp).setInt(SP.itemStyleIndex, event.index); emit(state.copyWith(itemStyleIndex: event.index)); } } diff --git a/lib/app/res/color_unit.dart b/lib/app/res/color_unit.dart index 1c6866c..eb2a326 100644 --- a/lib/app/res/color_unit.dart +++ b/lib/app/res/color_unit.dart @@ -1,3 +1,5 @@ +// ignore_for_file: constant_identifier_names + import 'package:flutter/material.dart'; /// create by 张风捷特烈 on 2020/11/17 diff --git a/lib/app/res/cons.dart b/lib/app/res/cons.dart index 7ce800a..b9d5968 100644 --- a/lib/app/res/cons.dart +++ b/lib/app/res/cons.dart @@ -3,7 +3,7 @@ import 'package:flutter_unit/components/permanent/code/highlighter_style.dart'; class Cons { - static const MENU_INFO = ["关于", "帮助", "问题反馈"]; //菜单栏 + static const menuInfo = ["关于", "帮助", "问题反馈"]; //菜单栏 static const List tabColors = [ @@ -54,7 +54,7 @@ class Cons { Colors.indigo: "无限之靛", Colors.purple: "神秘之紫", - MaterialColor(0xff2D2D2D, { + const MaterialColor(0xff2D2D2D, { 50: Color(0xFF8A8A8A), 100: Color(0xFF747474), 200: Color(0xFF616161), diff --git a/lib/app/res/size_unit.dart b/lib/app/res/size_unit.dart index 4702ad5..4c0da3a 100644 --- a/lib/app/res/size_unit.dart +++ b/lib/app/res/size_unit.dart @@ -2,6 +2,8 @@ /// contact me by email 1981462002@qq.com /// 说明: +// ignore_for_file: constant_identifier_names + class SizeUnit { // 小文字大小 diff --git a/lib/app/res/style/gap.dart b/lib/app/res/style/gap.dart index 7331173..b9f7b8a 100644 --- a/lib/app/res/style/gap.dart +++ b/lib/app/res/style/gap.dart @@ -1,3 +1,5 @@ +// ignore_for_file: constant_identifier_names + import 'package:flutter/material.dart'; class Gap{ diff --git a/lib/app/res/style/shape/coupon_shape_border.dart b/lib/app/res/style/shape/coupon_shape_border.dart index 0baf5bd..4b5f519 100644 --- a/lib/app/res/style/shape/coupon_shape_border.dart +++ b/lib/app/res/style/shape/coupon_shape_border.dart @@ -16,7 +16,7 @@ class CouponShapeBorder extends ShapeBorder { final bool hasBottomHole; final double? edgeRadius; - CouponShapeBorder( + const CouponShapeBorder( {this.holeCount = 6, this.hasTopHole =true, this.hasBottomHole =false, diff --git a/lib/app/res/style/shape/techno_shape.dart b/lib/app/res/style/shape/techno_shape.dart index c1aefe2..0c75e6e 100644 --- a/lib/app/res/style/shape/techno_shape.dart +++ b/lib/app/res/style/shape/techno_shape.dart @@ -35,7 +35,7 @@ class TechnoShapeBorder extends ShapeBorder { @override Path getInnerPath(Rect rect, {TextDirection? textDirection}) { Path path = Path(); - path.addRRect(RRect.fromRectAndRadius(rect, Radius.circular(5))); + path.addRRect(RRect.fromRectAndRadius(rect, const Radius.circular(5))); return path; } diff --git a/lib/app/res/style_unit.dart b/lib/app/res/style_unit.dart index 8382da5..e97505b 100644 --- a/lib/app/res/style_unit.dart +++ b/lib/app/res/style_unit.dart @@ -8,20 +8,20 @@ import 'size_unit.dart'; /// 说明: class TextStyleUnit { - static const TextStyle hintStyle = const TextStyle( + static const TextStyle hintStyle = TextStyle( color: ColorUnit.input_hit_text_color, fontSize: SizeUnit.input_hit_text_size); - static const TextStyle primary = const TextStyle( + static const TextStyle primary = TextStyle( color: ColorUnit.text_color, fontSize: SizeUnit.input_text_size); - static const TextStyle headTextStyle = const TextStyle( + static const TextStyle headTextStyle = TextStyle( color: ColorUnit.head_text_color, fontSize: SizeUnit.head_text_size); - static const TextStyle smallSubTextStyle = const TextStyle( + static const TextStyle smallSubTextStyle = TextStyle( color: ColorUnit.input_hit_text_color, fontSize: SizeUnit.small_text_size); - static const TextStyle bigTextStyle = const TextStyle( + static const TextStyle bigTextStyle = TextStyle( color: ColorUnit.text_color, fontSize: SizeUnit.big_text_size); } diff --git a/lib/app/res/toly_icon.dart b/lib/app/res/toly_icon.dart index a6c156f..e5edb73 100644 --- a/lib/app/res/toly_icon.dart +++ b/lib/app/res/toly_icon.dart @@ -1,3 +1,5 @@ +// ignore_for_file: constant_identifier_names + import 'package:flutter/widgets.dart'; //Power By 张风捷特烈--- Generated file. Do not edit. diff --git a/lib/app/router/router_utils.dart b/lib/app/router/router_utils.dart index 0370ece..7e842b6 100644 --- a/lib/app/router/router_utils.dart +++ b/lib/app/router/router_utils.dart @@ -64,7 +64,7 @@ class Right2LeftRouter extends PageRouteBuilder { SlideTransition( child: child, position: Tween( - begin: Offset(1.0, 0.0), end: Offset(0.0, 0.0),).animate( + begin: const Offset(1.0, 0.0), end: const Offset(0.0, 0.0),).animate( CurvedAnimation(parent: a1, curve: curve)), )); } @@ -82,7 +82,7 @@ class Left2RightRouter extends PageRouteBuilder { transitionsBuilder:(ctx,a1,a2,child,) { return SlideTransition( position: Tween( - begin: Offset(-1.0, 0.0), end: Offset(0.0, 0.0),).animate( + begin: const Offset(-1.0, 0.0), end: const Offset(0.0, 0.0),).animate( CurvedAnimation(parent: a1, curve: curve)), child: child ); @@ -101,7 +101,7 @@ class Top2BottomRouter extends PageRouteBuilder { transitionsBuilder:(ctx,a1,a2, child,) { return SlideTransition( position: Tween( - begin: Offset(0.0,-1.0), end: Offset(0.0, 0.0),).animate( + begin: const Offset(0.0,-1.0), end: const Offset(0.0, 0.0),).animate( CurvedAnimation(parent: a1, curve: curve)), child: child ); @@ -120,7 +120,7 @@ class Bottom2TopRouter extends PageRouteBuilder { transitionsBuilder:(ctx,a1,a2, child,) { return SlideTransition( position: Tween( - begin: Offset(0.0, 1.0), end: Offset(0.0, 0.0),).animate( + begin: const Offset(0.0, 1.0), end: const Offset(0.0, 0.0),).animate( CurvedAnimation(parent: a1, curve: curve)), child: child ); @@ -157,7 +157,7 @@ class NoAnimRouter extends PageRouteBuilder { : super( opaque: false, pageBuilder: (context, animation, secondaryAnimation) => child, - transitionDuration: Duration(milliseconds: 0), + transitionDuration: const Duration(milliseconds: 0), transitionsBuilder: (context, animation, secondaryAnimation, child) => child); } diff --git a/lib/app/router/unit_router.dart b/lib/app/router/unit_router.dart index 624160d..f9f9c11 100644 --- a/lib/app/router/unit_router.dart +++ b/lib/app/router/unit_router.dart @@ -1,3 +1,5 @@ +// ignore_for_file: constant_identifier_names + import 'package:flutter/material.dart'; import 'package:flutter_unit/app/views/about/about_app_page.dart'; import 'package:flutter_unit/app/views/about/about_me_page.dart'; @@ -65,50 +67,47 @@ class UnitRouter { child: WidgetDetailPage(model: settings.arguments as WidgetModel)); case search: - return Right2LeftRouter(child: SearchPage()); + return Right2LeftRouter(child: const SearchPage()); case collect: - return Right2LeftRouter(child: CollectPage()); + return Right2LeftRouter(child: const CollectPage()); case setting: - return Right2LeftRouter(child: SettingPage()); + return Right2LeftRouter(child: const SettingPage()); case data_manage: - return Right2LeftRouter(child: DataManagePage()); + return Right2LeftRouter(child: const DataManagePage()); case font_setting: - return Right2LeftRouter(child: FontSettingPage()); + return Right2LeftRouter(child: const FontSettingPage()); case theme_color_setting: - return Right2LeftRouter(child: ThemeColorSettingPage()); + return Right2LeftRouter(child: const ThemeColorSettingPage()); case code_style_setting: - return Right2LeftRouter(child: CodeStyleSettingPage()); + return Right2LeftRouter(child: const CodeStyleSettingPage()); case item_style_setting: - return Right2LeftRouter(child: ItemStyleSettingPage()); + return Right2LeftRouter(child: const ItemStyleSettingPage()); case version_info: - return Right2LeftRouter(child: VersionInfo()); - - case version_info: - return Right2LeftRouter(child: VersionInfo()); + return Right2LeftRouter(child: const VersionInfo()); case issues_point: - return Right2LeftRouter(child: IssuesPointPage()); + return Right2LeftRouter(child: const IssuesPointPage()); case login: - return Right2LeftRouter(child: LoginPage()); + return Right2LeftRouter(child: const LoginPage()); case register: - return Right2LeftRouter(child: RegisterPage()); + return Right2LeftRouter(child: const RegisterPage()); case attr: - return Right2LeftRouter(child: AttrUnitPage()); + return Right2LeftRouter(child: const AttrUnitPage()); case bug: - return Right2LeftRouter(child: BugUnitPage()); + return Right2LeftRouter(child: const BugUnitPage()); case layout: - return Right2LeftRouter(child: LayoutUnitPage()); + return Right2LeftRouter(child: const LayoutUnitPage()); case about_app: - return Right2LeftRouter(child: AboutAppPage()); + return Right2LeftRouter(child: const AboutAppPage()); case about_me: - return Right2LeftRouter(child: AboutMePage()); + return Right2LeftRouter(child: const AboutMePage()); case point_detail: - return Right2LeftRouter(child: IssuesDetailPage()); + return Right2LeftRouter(child: const IssuesDetailPage()); case category_show: return Right2LeftRouter( diff --git a/lib/app/utils/convert_man.dart b/lib/app/utils/convert_man.dart index 0545fb8..d6c4af3 100644 --- a/lib/app/utils/convert_man.dart +++ b/lib/app/utils/convert_man.dart @@ -2,15 +2,15 @@ /// contact me by email 1981462002@qq.com /// 说明: -final double _kMillisLimit = 1000.0; +const double _kMillisLimit = 1000.0; -final double _kSecondsLimit = 60 * _kMillisLimit; +const double _kSecondsLimit = 60 * _kMillisLimit; -final double _kMinutesLimit = 60 * _kSecondsLimit; +const double _kMinutesLimit = 60 * _kSecondsLimit; -final double _kHourLimit = 24 * _kMinutesLimit; +const double _kHourLimit = 24 * _kMinutesLimit; -final double _kDaysLimit = 30 * _kHourLimit; +const double _kDaysLimit = 30 * _kHourLimit; class ConvertMan { diff --git a/lib/app/utils/http_utils/http_util.dart b/lib/app/utils/http_utils/http_util.dart index 4eda395..89f81cf 100644 --- a/lib/app/utils/http_utils/http_util.dart +++ b/lib/app/utils/http_utils/http_util.dart @@ -13,8 +13,8 @@ class HttpUtil { static final HttpUtil _instance = HttpUtil._internal(); Dio? _dio; - static const CODE_SUCCESS = 200; - static const CODE_TIME_OUT = -1; + static const codeSuccess = 200; + static const codeTimeOut = -1; factory HttpUtil() => _instance; TokenInterceptors? tokenInterceptors; diff --git a/lib/app/views/about/about_app_page.dart b/lib/app/views/about/about_app_page.dart index 02bcb5d..24f9cdc 100644 --- a/lib/app/views/about/about_app_page.dart +++ b/lib/app/views/about/about_app_page.dart @@ -12,6 +12,8 @@ import 'package:flutter_unit/components/permanent/panel.dart'; import 'package:url_launcher/url_launcher.dart'; class AboutAppPage extends StatelessWidget { + const AboutAppPage({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return Scaffold( @@ -117,12 +119,12 @@ class AboutAppPage extends StatelessWidget { child: Wrap( direction: Axis.vertical, crossAxisAlignment: WrapCrossAlignment.center, - children: [ - const Icon( + children: const [ + Icon( TolyIcon.icon_github, size: 35, ), - const Text('Github') + Text('Github') ], )), ], @@ -130,52 +132,52 @@ class AboutAppPage extends StatelessWidget { ), Column( crossAxisAlignment: CrossAxisAlignment.start, - children: [ - const Text( + children: const [ + Text( 'Flutter Unit', style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold), ), - const SizedBox(height: 20), - const Text( + SizedBox(height: 20), + Text( 'The Unity Of Flutter, The Unity Of Coder.', - style: const TextStyle(fontSize: 16), + style: TextStyle(fontSize: 16), ), - const SizedBox(height: 10), - const Text( + SizedBox(height: 10), + Text( 'Flutter的联合,编程者的联合。', style: TextStyle(fontSize: 16), ), - const Divider( + Divider( height: 20, ), - const InfoPanel( + InfoPanel( title: '项目简介', info: ' Flutter Unit 是一个非盈利性的开源项目,' '旨在提供全面的Flutter学习指南及编程者的交流技术的接口。' '由【张风捷特烈】提供技术支持和全权维护。唯一开源网站网址: ' 'https://github.com/toly1994328/FlutterUnit', ), - const Divider( + Divider( height: 20, ), - const InfoPanel( - title: 'Flutter Unit 1.0', - info: 'Flutter Unit 1.0 核心计划是收录widget,即widget集录。' - '目前收录组件 283 个,均可在 app 中进行查看。' - '项目中提供widget图鉴文件可供下载参考。功能主要如下:\n' - '○ 280+的 Flutter 组件收录和详情介绍。\n' - '○ 对一些重要的组件提供操作体验。\n' - '○ link to功能,查看组件时可以切换到相关组件。\n' - '○ 组件收藏和取消收藏功能。\n' - '○ 主题、字体设置,代码风格等全局状态管理。\n' - '○ 搜索功能和组件星级分类。', + InfoPanel( + title: 'Flutter Unit 1.0', + info: 'Flutter Unit 1.0 核心计划是收录widget,即widget集录。' + '目前收录组件 283 个,均可在 app 中进行查看。' + '项目中提供widget图鉴文件可供下载参考。功能主要如下:\n' + '○ 280+的 Flutter 组件收录和详情介绍。\n' + '○ 对一些重要的组件提供操作体验。\n' + '○ link to功能,查看组件时可以切换到相关组件。\n' + '○ 组件收藏和取消收藏功能。\n' + '○ 主题、字体设置,代码风格等全局状态管理。\n' + '○ 搜索功能和组件星级分类。', ), - const Divider( + Divider( height: 20, ), - const InfoPanel( + InfoPanel( title: 'Flutter Unit 2.0 计划', - info: 'Flutter Unit 2.0 尚在计划之中,如果说1.0是本王单枪匹马,' + info: 'Flutter Unit 2.0 尚在计划之中,如果说1.0是本王单枪匹马,' '那2.0将是Flutter爱好者的共同努力。后面陆续会发布一些征集方案,' '包括属性、布局、绘制、bug、要点集录等。吾想让Unit 成为一个Flutter的圣地,纯粹而强大,期待与你的共同携手。', ) @@ -214,7 +216,7 @@ class InfoPanel extends StatelessWidget { style: const TextStyle(color: Colors.grey, fontSize: 13, shadows: [ - const Shadow( + Shadow( color: Colors.white, offset: Offset(1,1) ) diff --git a/lib/app/views/about/about_me_page.dart b/lib/app/views/about/about_me_page.dart index 5c9c259..c50c789 100644 --- a/lib/app/views/about/about_me_page.dart +++ b/lib/app/views/about/about_me_page.dart @@ -145,7 +145,7 @@ class AboutMePage extends StatelessWidget { child: Wrap( direction: Axis.vertical, crossAxisAlignment: WrapCrossAlignment.center, - children: [ + children:const [ Icon( TolyIcon.icon_juejin, size: 35, diff --git a/lib/app/views/about/version/version_shower.dart b/lib/app/views/about/version/version_shower.dart index 2162e6f..3c20a2c 100644 --- a/lib/app/views/about/version/version_shower.dart +++ b/lib/app/views/about/version/version_shower.dart @@ -24,9 +24,10 @@ class _VersionShowerState extends State { void _fetchVersion() async{ PackageInfo packageInfo = await PackageInfo.fromPlatform(); - if(mounted) - setState(() { + if(mounted) { + setState(() { version= packageInfo.version; }); + } } } diff --git a/lib/app/views/about/version_info.dart b/lib/app/views/about/version_info.dart index 4dea397..0501e5f 100644 --- a/lib/app/views/about/version_info.dart +++ b/lib/app/views/about/version_info.dart @@ -26,12 +26,12 @@ class VersionInfo extends StatelessWidget { appBar: AppBar( backgroundColor: Colors.white, elevation: 0, - iconTheme: IconThemeData( + iconTheme: const IconThemeData( color: Colors.grey ), ), body:ConstrainedBox( - constraints: BoxConstraints.expand(), + constraints: const BoxConstraints.expand(), child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ @@ -41,7 +41,7 @@ class VersionInfo extends StatelessWidget { ), _buildCenter(context), - Spacer(), + const Spacer(), Padding( padding: const EdgeInsets.only(bottom:8.0), child: buildBottom(), @@ -58,16 +58,16 @@ class VersionInfo extends StatelessWidget { direction: Axis.vertical, crossAxisAlignment: WrapCrossAlignment.center, spacing: 10, - children: [ + children: const [ CircleImage(image: AssetImage("assets/images/icon_head.webp"),size: 80,), Text('Flutter Unit',style: TextStyle(fontSize: 20,fontWeight: FontWeight.bold),), - const VersionShower(), + VersionShower(), ], ); } Widget _buildCenter(BuildContext context) { - final labelStyle= TextStyle(fontSize: 13); + const TextStyle labelStyle= TextStyle(fontSize: 13); return Padding( padding: const EdgeInsets.only(left:20.0,right: 20,top: 20), child: ScrollConfiguration( @@ -75,23 +75,23 @@ class VersionInfo extends StatelessWidget { child: ListView( shrinkWrap: true, children: [ - Divider(height: 1,), + const Divider(height: 1,), ListTile( - title: Text('应用详情',style: labelStyle,), + title: const Text('应用详情',style: labelStyle,), trailing: _nextIcon(context), onTap: () => Navigator.of(context).pushNamed(UnitRouter.about_app), ), - Divider(height: 1,indent: 10), + const Divider(height: 1,indent: 10), const AppUpdatePanel(), - Divider(height: 1,indent: 10), + const Divider(height: 1,indent: 10), ListTile( - title: Text('检查数据库新版本',style: labelStyle), + title: const Text('检查数据库新版本',style: labelStyle), trailing: _nextIcon(context), onTap: () async{ }, ), - Divider(height: 1,), + const Divider(height: 1,), ], ), ), @@ -99,7 +99,7 @@ class VersionInfo extends StatelessWidget { } Widget _nextIcon(BuildContext context) => - Icon(Icons.chevron_right, color: Colors.grey); + const Icon(Icons.chevron_right, color: Colors.grey); Widget buildBottom() { return Wrap( @@ -111,9 +111,9 @@ class VersionInfo extends StatelessWidget { onPressed: (){ _launchURL("https://github_model.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),), + child: const Text('《查看本项目Github仓库》',style: TextStyle(fontSize: 12,color: Color(0xff616C84),),)), + const Text('Power By 张风捷特烈',style: TextStyle(fontSize: 12,color: Colors.grey),), + const Text('Copyright © 2008-2020 Toly1994',style: TextStyle(fontSize: 12,color: Colors.grey),), ], ); } diff --git a/lib/app/views/data_manage/data_manage_page.dart b/lib/app/views/data_manage/data_manage_page.dart index 94b9315..e1ccf7e 100644 --- a/lib/app/views/data_manage/data_manage_page.dart +++ b/lib/app/views/data_manage/data_manage_page.dart @@ -45,7 +45,7 @@ class DataManagePage extends StatelessWidget { onTap: () => _doUploadCategoryData(ctx), ), ), - AuthenticWidget.just(Divider()), + AuthenticWidget.just(const Divider()), AuthenticWidget.just(ListTile( trailing: Icon( TolyIcon.download, @@ -54,7 +54,7 @@ class DataManagePage extends StatelessWidget { title: const Text('同步收藏集数据'), onTap: () => _doSync(ctx), )), - AuthenticWidget.just(Divider()), + AuthenticWidget.just(const Divider()), ListTile( trailing: Icon( Icons.refresh, @@ -64,7 +64,7 @@ class DataManagePage extends StatelessWidget { // trailing: _nextIcon(context), onTap: () => _recallDatabase(ctx), ), - Divider(), + const Divider(), ], ), ), @@ -79,8 +79,8 @@ class DataManagePage extends StatelessWidget { data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes); await File(dbPath).writeAsBytes(bytes, flush: true); print("==== debug ===== assets ======拷贝完成===="); - BlocProvider.of(context).add(EventLoadCategory()); - BlocProvider.of(context).add(EventLoadLikeData()); + BlocProvider.of(context).add(const EventLoadCategory()); + BlocProvider.of(context).add(const EventLoadLikeData()); Toast.toast(context, '重置成功!'); } @@ -114,8 +114,8 @@ class DataManagePage extends StatelessWidget { BlocProvider.of(context).repository; await repository.syncCategoryByData( result.data!.data, result.data!.likeData); - BlocProvider.of(context).add(EventLoadCategory()); - BlocProvider.of(context).add(EventLoadLikeData()); + BlocProvider.of(context).add(const EventLoadCategory()); + BlocProvider.of(context).add(const EventLoadLikeData()); } else { // 说明还没有后台数据, // 这里防止有傻孩子没点备份,就点同步,哥哥好心,给备份一下。 diff --git a/lib/app/views/navigation/unit_navigation.dart b/lib/app/views/navigation/unit_navigation.dart index 648ce3d..424d1d4 100644 --- a/lib/app/views/navigation/unit_navigation.dart +++ b/lib/app/views/navigation/unit_navigation.dart @@ -34,7 +34,7 @@ class _UnitNavigationState extends State { @override void initState() { super.initState(); - BlocProvider.of(context).add(CheckUpdate(appName: 'FlutterUnit')); + BlocProvider.of(context).add(const CheckUpdate(appName: 'FlutterUnit')); } @override @@ -56,7 +56,7 @@ class _UnitNavigationState extends State { child: PageView( physics: _neverScroll, controller: _controller, - children: [ + children: const[ HomePage(), GalleryUnit(), CollectPage(), @@ -111,7 +111,7 @@ class _UnitNavigationState extends State { } if (index == 2) { - BlocProvider.of(context).add(EventLoadLikeData()); + BlocProvider.of(context).add(const EventLoadLikeData()); } } diff --git a/lib/app/views/setting/code_style_setting.dart b/lib/app/views/setting/code_style_setting.dart index cc3fa2a..2c795ab 100644 --- a/lib/app/views/setting/code_style_setting.dart +++ b/lib/app/views/setting/code_style_setting.dart @@ -38,7 +38,7 @@ class Hello { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('代码高亮样式'), + title: const Text('代码高亮样式'), ), body: BlocBuilder( builder: (_, state) => _buildFontCell(context, @@ -52,7 +52,7 @@ class Hello { itemCount: styles.length, itemBuilder: (_ctx, i) => FeedbackWidget( a: 0.95, - duration: Duration(milliseconds: 200), + duration: const Duration(milliseconds: 200), onPressed: (){ BlocProvider.of(context).add(EventSwitchCoderTheme(i)); }, @@ -60,7 +60,7 @@ class Hello { fit: StackFit.passthrough, children: [ Card( - margin: EdgeInsets.all(10), + margin: const EdgeInsets.all(10), child: CodeWidget( code: code, style: styles[i], @@ -73,7 +73,7 @@ class Hello { child: Text(Cons.codeThemeSupport.values.toList()[i],style: TextStyle( fontSize: 14, color: styles[i].stringStyle!.color, - shadows: [Shadow( + shadows: const [Shadow( color: Colors.white, offset: Offset(.5,.5), blurRadius: 1 @@ -87,7 +87,7 @@ class Hello { top: 20, child: Circle(radius: 10, color: Theme.of(context).primaryColor, - child: Icon(Icons.check,color:Colors.white,size: 15,),), + child: const Icon(Icons.check,color:Colors.white,size: 15,),), ) ], ), diff --git a/lib/app/views/setting/font_setting.dart b/lib/app/views/setting/font_setting.dart index 190263a..c084fa9 100644 --- a/lib/app/views/setting/font_setting.dart +++ b/lib/app/views/setting/font_setting.dart @@ -20,7 +20,7 @@ class FontSettingPage extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('字体设置 - font setting'), + title: const Text('字体设置 - font setting'), ), body: BlocBuilder( builder: (_, state) => _buildFontCell( @@ -31,7 +31,7 @@ class FontSettingPage extends StatelessWidget { Widget _buildFontCell( BuildContext context, List fontFamilySupport, String fontFamily) { return GridView.count( - padding: EdgeInsets.only(top: 20, left: 10, right: 10), + padding: const EdgeInsets.only(top: 20, left: 10, right: 10), shrinkWrap: true, crossAxisCount: 2, mainAxisSpacing: 10, @@ -40,7 +40,7 @@ class FontSettingPage extends StatelessWidget { children: fontFamilySupport .map((e) => FeedbackWidget( a: 0.95, - duration: Duration(milliseconds: 200), + duration: const Duration(milliseconds: 200), onPressed: () { BlocProvider.of(context) .add(EventSwitchFontFamily(e)); @@ -48,7 +48,7 @@ class FontSettingPage extends StatelessWidget { child: Card( child: GridTile( header: Container( - padding: EdgeInsets.only(left: 10, right: 5), + padding: const EdgeInsets.only(left: 10, right: 5), height: 30, color: fontFamily == e ? Colors.blue.withAlpha(88) @@ -60,7 +60,7 @@ class FontSettingPage extends StatelessWidget { color: Colors.black, fontFamily: e, )), - Spacer(), + const Spacer(), if (fontFamily == e) Circle(color: Theme.of(context).primaryColor,) ], ), @@ -72,7 +72,7 @@ class FontSettingPage extends StatelessWidget { Colors.blueAccent.withAlpha(22), Theme.of(context).primaryColor.withAlpha(88) ])), - alignment: Alignment(0, 0.4), + alignment: const Alignment(0, 0.4), child: Text( '张风捷特烈\n@toly1994', style: TextStyle(fontFamily: e, fontSize: 16), diff --git a/lib/app/views/setting/item_style_setting.dart b/lib/app/views/setting/item_style_setting.dart index ea68f0e..2d1e4ed 100644 --- a/lib/app/views/setting/item_style_setting.dart +++ b/lib/app/views/setting/item_style_setting.dart @@ -19,7 +19,7 @@ class ItemStyleSettingPage extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('item样式设置'), + title: const Text('item样式设置'), ), body: BlocBuilder(builder: (_, state) { return _buildCell(context, state.itemStyleIndex); @@ -33,10 +33,10 @@ class ItemStyleSettingPage extends StatelessWidget { return ListView.builder( itemCount: items.length, itemBuilder: (_, i) => Padding( - padding: EdgeInsets.only(bottom: 8,left: 8,right: 8), + padding: const EdgeInsets.only(bottom: 8,left: 8,right: 8), child: FeedbackWidget( a: 0.95, - duration: Duration(milliseconds: 200), + duration: const Duration(milliseconds: 200), onPressed: () { BlocProvider.of(context) .add(EventChangeItemStyle(i)); @@ -51,7 +51,7 @@ class ItemStyleSettingPage extends StatelessWidget { child: Circle( color: Theme.of(context).primaryColor, radius: 10, - child: Icon( + child: const Icon( Icons.check, color: Colors.white, size: 15, diff --git a/lib/app/views/setting/setting_page.dart b/lib/app/views/setting/setting_page.dart index aeb7c3b..6d75055 100644 --- a/lib/app/views/setting/setting_page.dart +++ b/lib/app/views/setting/setting_page.dart @@ -13,7 +13,7 @@ class SettingPage extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('应用设置'), + title: const Text('应用设置'), ), body: ListView( children: [ @@ -22,51 +22,51 @@ class SettingPage extends StatelessWidget { Icons.palette, color: Theme.of(context).primaryColor, ), - title: Text('主题色设置'), + title: const Text('主题色设置'), trailing: _nextIcon(context), onTap: () => Navigator.of(context).pushNamed(UnitRouter.theme_color_setting), ), - Divider(), + const Divider(), ListTile( leading: Icon( Icons.translate, color: Theme.of(context).primaryColor, ), - title: Text('字体设置'), + title: const Text('字体设置'), trailing: _nextIcon(context), onTap: () => Navigator.of(context).pushNamed(UnitRouter.font_setting), ), - Divider(), + const Divider(), ListTile( leading: Icon( TolyIcon.icon_item, color: Theme.of(context).primaryColor, ), - title: Text('item样式设置'), + title: const Text('item样式设置'), trailing: _nextIcon(context), onTap: () => Navigator.of(context).pushNamed(UnitRouter.item_style_setting), ), - Divider(), + const Divider(), ListTile( leading: Icon( TolyIcon.icon_code, color: Theme.of(context).primaryColor, ), - title: Text('代码高亮样式'), + title: const Text('代码高亮样式'), trailing: _nextIcon(context), onTap: () => Navigator.of(context).pushNamed(UnitRouter.code_style_setting), ), - Divider(), + const Divider(), _buildShowBg(context), - Divider(), + const Divider(), _buildShowOver(context), - Divider(), + const Divider(), ListTile( leading: Icon( Icons.info, color: Theme.of(context).primaryColor, ), - title: Text('版本信息'), + title: const Text('版本信息'), trailing: _nextIcon(context), onTap: () => Navigator.of(context).pushNamed(UnitRouter.version_info), ), @@ -83,7 +83,7 @@ class SettingPage extends StatelessWidget { TolyIcon.icon_background, color: Theme.of(context).primaryColor, ), - title: Text('显示背景'), + title: const Text('显示背景'), onChanged: (show) { BlocProvider.of(context) .add(EventSwitchShowBg(show)); @@ -98,7 +98,7 @@ class SettingPage extends StatelessWidget { TolyIcon.icon_show, color: Theme.of(context).primaryColor, ), - title: Text('显示性能浮层'), + title: const Text('显示性能浮层'), onChanged: (show) { BlocProvider.of(context) .add(EventSwitchShowOver(show)); diff --git a/lib/app/views/setting/theme_color_setting.dart b/lib/app/views/setting/theme_color_setting.dart index ab9baaa..e8e178b 100644 --- a/lib/app/views/setting/theme_color_setting.dart +++ b/lib/app/views/setting/theme_color_setting.dart @@ -19,7 +19,7 @@ class ThemeColorSettingPage extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('主题色设置'), + title: const Text('主题色设置'), ), body: BlocBuilder( builder: (_, state) => _buildFontCell( @@ -30,7 +30,7 @@ class ThemeColorSettingPage extends StatelessWidget { Widget _buildFontCell( BuildContext context, List themeColorSupport, MaterialColor color) { return GridView.count( - padding: EdgeInsets.only(top: 20, left: 10, right: 10), + padding: const EdgeInsets.only(top: 20, left: 10, right: 10), shrinkWrap: true, crossAxisCount: 2, mainAxisSpacing: 10, @@ -39,29 +39,29 @@ class ThemeColorSettingPage extends StatelessWidget { children: themeColorSupport .map((MaterialColor c) => FeedbackWidget( a: 0.95, - duration: Duration(milliseconds: 200), + duration: const Duration(milliseconds: 200), onPressed: () => BlocProvider.of(context).add(EventSwitchThemeColor(c)), child: GridTile( header: Container( decoration: BoxDecoration( - borderRadius: BorderRadius.only(topLeft: Radius.circular(10),topRight: Radius.circular(10)), + borderRadius: const BorderRadius.only(topLeft: Radius.circular(10),topRight: Radius.circular(10)), color: color == c ? Colors.blue.withAlpha(88): Colors.grey.withAlpha(55), ), - padding: EdgeInsets.only(left: 10, right: 5), + padding: const EdgeInsets.only(left: 10, right: 5), height: 30, child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - Spacer(), + const Spacer(), Text(colorString(c), - style: TextStyle( + style: const TextStyle( color: Colors.white, )), - Spacer(), - if (color == c) Padding( - padding: const EdgeInsets.only(right:8.0), + const Spacer(), + if (color == c) const Padding( + padding: EdgeInsets.only(right:8.0), child: Circle(color: Colors.white,radius: 7,), ) ], @@ -69,7 +69,7 @@ class ThemeColorSettingPage extends StatelessWidget { ), child: Container( decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(10)), + borderRadius: const BorderRadius.all(Radius.circular(10)), gradient: LinearGradient(colors: [ c.shade50, c.shade100, @@ -82,10 +82,10 @@ class ThemeColorSettingPage extends StatelessWidget { c.shade800, c.shade900, ])), - alignment: Alignment(0,0.35), + alignment: const Alignment(0,0.35), child: Text( '${Cons.themeColorSupport[c]}', - style: TextStyle(fontSize: 18,color: Colors.white,fontWeight: FontWeight.bold), + style: const TextStyle(fontSize: 18,color: Colors.white,fontWeight: FontWeight.bold), )), ))) .toList(), diff --git a/lib/app/views/splash/flutter_unit_text.dart b/lib/app/views/splash/flutter_unit_text.dart index a6ae37d..dc00937 100644 --- a/lib/app/views/splash/flutter_unit_text.dart +++ b/lib/app/views/splash/flutter_unit_text.dart @@ -7,7 +7,7 @@ class FlutterUnitText extends StatefulWidget { final String text; final Color color; - FlutterUnitText({ + const FlutterUnitText({ this.text = "Toly", this.color = Colors.blue, Key? key, @@ -31,7 +31,7 @@ class _FlutterUnitTextState extends State void initState() { super.initState(); TextSpan text = TextSpan( - text: widget.text, style: TextStyle(fontSize: 40, color: Colors.blue)); + text: widget.text, style: const TextStyle(fontSize: 40, color: Colors.blue)); _textPainter.text = text; _textPainter.layout(); // 进行布局 diff --git a/lib/app/views/splash/splash_bottom.dart b/lib/app/views/splash/splash_bottom.dart index 88a2194..e4eb394 100644 --- a/lib/app/views/splash/splash_bottom.dart +++ b/lib/app/views/splash/splash_bottom.dart @@ -25,7 +25,7 @@ class _SplashBottomState extends State { Future.delayed(delayTime).then(startAnim); } - FutureOr startAnim(value){ + void startAnim(value){ setState(() { _animStart = true; }); @@ -40,9 +40,9 @@ class _SplashBottomState extends State { direction: Axis.vertical, alignment: WrapAlignment.center, crossAxisAlignment: WrapCrossAlignment.center, - children: [ - const Text("Power By 张风捷特烈", style: TStyleUnit.splashShadows), - const Text("· 2021 · @编程之王 ", style: TStyleUnit.splashShadows), + children: const [ + Text("Power By 张风捷特烈", style: TStyleUnit.splashShadows), + Text("· 2021 · @编程之王 ", style: TStyleUnit.splashShadows), ], )); } diff --git a/lib/app/views/splash/unit_splash.dart b/lib/app/views/splash/unit_splash.dart index 7337a1e..35f7bb2 100644 --- a/lib/app/views/splash/unit_splash.dart +++ b/lib/app/views/splash/unit_splash.dart @@ -134,9 +134,9 @@ class _UnitSplashState extends State with TickerProviderStateMixin { scale: logoScaleAnim, child: FadeTransition( opacity: _controller, - child: SizedBox( + child: const SizedBox( height: 120, - child: const FlutterLogo( + child: FlutterLogo( size: 60, ), )), diff --git a/lib/app/views/time_line/flutter_unit_time_line.dart b/lib/app/views/time_line/flutter_unit_time_line.dart index 2e4f8f9..f4d9198 100644 --- a/lib/app/views/time_line/flutter_unit_time_line.dart +++ b/lib/app/views/time_line/flutter_unit_time_line.dart @@ -13,12 +13,12 @@ class FlutterUnitTimeLine extends StatelessWidget { backgroundColor: Colors.black, appBar: AppBar( backgroundColor: Colors.black, - title: Text('FlutterUnit 时光轴'), + title: const Text('FlutterUnit 时光轴'), ), body: Container( - margin: EdgeInsets.only(top: 0), + margin: const EdgeInsets.only(top: 0), child: ListView( - padding: EdgeInsets.only(top: 0, bottom: 20), + padding: const EdgeInsets.only(top: 0, bottom: 20), children: [ TimeLineNode( timeNode: TimeNode( @@ -87,15 +87,15 @@ class TimeLineNode extends StatelessWidget { child: timeNode.year != null ? Text( '${timeNode.year} 年', - style: TextStyle( + style: const TextStyle( color: Colors.white, fontWeight: FontWeight.bold), ) - : Visibility( + : const Visibility( visible: false, maintainState: true, maintainSize: true, maintainAnimation: true, - child: const Text( + child: Text( '2020 年', style: TextStyle( color: Colors.white, fontWeight: FontWeight.bold), @@ -148,7 +148,7 @@ class TimeLineNode extends StatelessWidget { if (timeNode.imageUrl != null) Container( width: double.infinity, - margin: EdgeInsets.symmetric(vertical: 5), + margin: const EdgeInsets.symmetric(vertical: 5), child: Image( image: NetworkImage( timeNode.imageUrl!, diff --git a/lib/app/views/unit_todo/attr_unit_page.dart b/lib/app/views/unit_todo/attr_unit_page.dart index b563313..b69ebe5 100644 --- a/lib/app/views/unit_todo/attr_unit_page.dart +++ b/lib/app/views/unit_todo/attr_unit_page.dart @@ -13,7 +13,7 @@ class AttrUnitPage extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('属性集录'), + title: const Text('属性集录'), ), body: Stack( alignment: Alignment.center, @@ -21,7 +21,7 @@ class AttrUnitPage extends StatelessWidget { Positioned( top: 50, child: Column( - children: [ + children: const [ CircleImage( image: AssetImage('assets/images/icon_head.webp'), size: 80, @@ -40,13 +40,13 @@ class AttrUnitPage extends StatelessWidget { ), Container( alignment: Alignment.center, - padding: EdgeInsets.all(20), + padding: const EdgeInsets.all(20), child: ShaderMask( shaderCallback: (rect) => _buildShader(rect, Theme.of(context).primaryColor), child: TextTyper( text:info, - textStyle: TextStyle( + textStyle: const TextStyle( shadows: [ Shadow( color: Colors.black, @@ -75,7 +75,7 @@ class AttrUnitPage extends StatelessWidget { .createShader(bounds); Widget buildPower() { - return Positioned( + return const Positioned( bottom: 30, right: 30, child: diff --git a/lib/app/views/unit_todo/layout_unit_page.dart b/lib/app/views/unit_todo/layout_unit_page.dart index d710a2b..36fedc0 100644 --- a/lib/app/views/unit_todo/layout_unit_page.dart +++ b/lib/app/views/unit_todo/layout_unit_page.dart @@ -18,15 +18,15 @@ class LayoutUnitPage extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('布局集录'), + title: const Text('布局集录'), ), body: Stack( alignment: Alignment.center, - children: [ + children: [ Positioned( top: 50, child: Column( - children: [ + children: const [ CircleImage( image: AssetImage('assets/images/icon_head.webp'), size: 80, @@ -45,13 +45,13 @@ class LayoutUnitPage extends StatelessWidget { ), Container( alignment: Alignment.center, - padding: EdgeInsets.all(20), + padding: const EdgeInsets.all(20), child: ShaderMask( shaderCallback: (rect) => _buildShader(rect, Theme.of(context).primaryColor), child: TextTyper( text:info, - textStyle: TextStyle( + textStyle: const TextStyle( shadows: [ Shadow( color: Colors.black, @@ -81,7 +81,7 @@ class LayoutUnitPage extends StatelessWidget { .createShader(bounds); Widget buildPlan() { - return Positioned( + return const Positioned( bottom: 80, child: Text("Flutter Unit 布局征集方案(待完成)", @@ -99,7 +99,7 @@ class LayoutUnitPage extends StatelessWidget { } Widget buildPower() { - return Positioned( + return const Positioned( bottom: 30, right: 30, child: diff --git a/lib/app/views/unit_todo/paint_unit_page.dart b/lib/app/views/unit_todo/paint_unit_page.dart index 21ca9ea..06fcf9b 100644 --- a/lib/app/views/unit_todo/paint_unit_page.dart +++ b/lib/app/views/unit_todo/paint_unit_page.dart @@ -23,7 +23,7 @@ class PaintUnitPage extends StatelessWidget { Positioned( top: 50, child: Column( - children: [ + children: const [ CircleImage( image: AssetImage('assets/images/icon_head.webp'), size: 80, @@ -42,13 +42,13 @@ class PaintUnitPage extends StatelessWidget { ), Container( alignment: Alignment.center, - padding: EdgeInsets.all(20), + padding: const EdgeInsets.all(20), child: ShaderMask( shaderCallback: (rect) => _buildShader(rect, Theme.of(context).primaryColor), child: TextTyper( text:info, - textStyle: TextStyle( + textStyle: const TextStyle( shadows: [ Shadow( color: Colors.black, @@ -78,7 +78,7 @@ class PaintUnitPage extends StatelessWidget { .createShader(bounds); Widget buildPlan() { - return Positioned( + return const Positioned( bottom: 80, child: Text("Flutter Unit 绘制征集方案(待完成)", @@ -96,7 +96,7 @@ class PaintUnitPage extends StatelessWidget { } Widget buildPower() { - return Positioned( + return const Positioned( bottom: 30, right: 30, child: diff --git a/lib/app/views/unit_todo/point_unit_page.dart b/lib/app/views/unit_todo/point_unit_page.dart index 04c430a..78ed95b 100644 --- a/lib/app/views/unit_todo/point_unit_page.dart +++ b/lib/app/views/unit_todo/point_unit_page.dart @@ -20,7 +20,7 @@ class BugUnitPage extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('要点集录'), + title: const Text('要点集录'), ), body: Stack( alignment: Alignment.center, @@ -33,13 +33,13 @@ class BugUnitPage extends StatelessWidget { onPressed: (){ Navigator.of(context).pushNamed(UnitRouter.issues_point); }, - child: CircleImage( + child: const CircleImage( image: AssetImage('assets/images/icon_head.webp'), size: 80, ), ), - SizedBox(height: 10,), - Text( + const SizedBox(height: 10,), + const Text( 'Flutter Unit 2.0 计划', style: TextStyle( color: Colors.green, @@ -52,13 +52,13 @@ class BugUnitPage extends StatelessWidget { ), Container( alignment: Alignment.center, - padding: EdgeInsets.all(20), + padding: const EdgeInsets.all(20), child: ShaderMask( shaderCallback: (rect) => _buildShader(rect, Theme.of(context).primaryColor), child: TextTyper( text:info, - textStyle: TextStyle( + textStyle: const TextStyle( shadows: [ Shadow( color: Colors.black, @@ -88,7 +88,7 @@ class BugUnitPage extends StatelessWidget { .createShader(bounds); Widget buildPlan() { - return Positioned( + return const Positioned( bottom: 80, child: Text("Flutter Unit 异常/特色 征集方案(待完成)", @@ -106,7 +106,7 @@ class BugUnitPage extends StatelessWidget { } Widget buildPower() { - return Positioned( + return const Positioned( bottom: 30, right: 30, child: diff --git a/lib/components/drop_selectable_widget.dart b/lib/components/drop_selectable_widget.dart index ee51f0a..5e30c67 100644 --- a/lib/components/drop_selectable_widget.dart +++ b/lib/components/drop_selectable_widget.dart @@ -109,7 +109,7 @@ class _DropSelectableWidgetState extends State return Container( width: widget.width, height: widget.height, - padding: EdgeInsets.only(left: 10, right: 10), + padding: const EdgeInsets.only(left: 10, right: 10), decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), border: Border.all( @@ -148,7 +148,7 @@ class _DropSelectableWidgetState extends State child: Padding( padding: const EdgeInsets.only(top: 4.0), child: Material( - shape: RoundedRectangleBorder( + shape: const RoundedRectangleBorder( side: BorderSide.none, borderRadius: BorderRadius.all(Radius.circular(5))), elevation: 1, @@ -157,7 +157,7 @@ class _DropSelectableWidgetState extends State child: Container( height: 200, // alignment: Alignment.center, - decoration: BoxDecoration( + decoration: const BoxDecoration( color: Color(0xffDAE3FF), ), // padding: const EdgeInsets.only(top: 5), @@ -187,7 +187,7 @@ class _DropSelectableWidgetState extends State _node.unfocus(); }, child: Container( - padding: EdgeInsets.all(8), + padding: const EdgeInsets.all(8), color: index == _selectedIndex ? Colors.blue.withOpacity(0.2) : Colors.transparent, diff --git a/lib/components/flutter/no_div_expansion_tile.dart b/lib/components/flutter/no_div_expansion_tile.dart index 5c08447..029ab79 100644 --- a/lib/components/flutter/no_div_expansion_tile.dart +++ b/lib/components/flutter/no_div_expansion_tile.dart @@ -108,8 +108,9 @@ class _NoBorderExpansionTileState extends State with Sing _backgroundColor = _controller.drive(_backgroundColorTween.chain(_easeOutTween)); _isExpanded = PageStorage.of(context)?.readState(context) ?? widget.initiallyExpanded; - if (_isExpanded) + if (_isExpanded) { _controller.value = 1.0; + } } @@ -126,8 +127,9 @@ class _NoBorderExpansionTileState extends State with Sing _controller.forward(); } else { _controller.reverse().then((void value) { - if (!mounted) + if (!mounted) { return; + } setState(() { // Rebuild without widget.children. }); @@ -175,7 +177,7 @@ class _NoBorderExpansionTileState extends State with Sing void didChangeDependencies() { final ThemeData theme = Theme.of(context); _borderColorTween - ..end = theme.dividerColor; + .end = theme.dividerColor; _headerColorTween ..begin = theme.textTheme.subtitle1!.color ..end = theme.accentColor; @@ -183,7 +185,7 @@ class _NoBorderExpansionTileState extends State with Sing ..begin = theme.unselectedWidgetColor ..end = theme.accentColor; _backgroundColorTween - ..end = widget.backgroundColor; + .end = widget.backgroundColor; super.didChangeDependencies(); } diff --git a/lib/components/permanent/burst_menu.dart b/lib/components/permanent/burst_menu.dart index 7c76bd8..09acb4a 100644 --- a/lib/components/permanent/burst_menu.dart +++ b/lib/components/permanent/burst_menu.dart @@ -69,7 +69,7 @@ class BurstMenu extends StatefulWidget { this.startAngle = -90, }) : super(key: key); - BurstMenu.topRight({ + const BurstMenu.topRight({Key? key, required this.menus, this.burstMenuItemClick, this.radius = 100, @@ -80,7 +80,7 @@ class BurstMenu extends StatefulWidget { this.burstType = BurstType.topRight, this.swapAngle = -90, this.startAngle = 180, - }); + }) : super(key: key); const BurstMenu.bottomRight({Key? key, required this.menus, diff --git a/lib/components/permanent/circle.dart b/lib/components/permanent/circle.dart index 8393450..d98a440 100644 --- a/lib/components/permanent/circle.dart +++ b/lib/components/permanent/circle.dart @@ -20,7 +20,7 @@ class Circle extends StatelessWidget { shape: BoxShape.circle, boxShadow: [ if (showShadow) - BoxShadow( + const BoxShadow( color: Colors.grey, offset: Offset(.5,.5), blurRadius: .5, diff --git a/lib/components/permanent/circle_image.dart b/lib/components/permanent/circle_image.dart index d1877f8..ec1c6fd 100644 --- a/lib/components/permanent/circle_image.dart +++ b/lib/components/permanent/circle_image.dart @@ -26,7 +26,7 @@ class CircleImage extends StatelessWidget { BoxShadow( //阴影 color: shadowColor ?? Colors.grey.withOpacity(0.3), - offset: Offset(0.0, 0.0), blurRadius: 3.0, spreadRadius: 0.0, + offset: const Offset(0.0, 0.0), blurRadius: 3.0, spreadRadius: 0.0, ), ], ), diff --git a/lib/components/permanent/circle_text.dart b/lib/components/permanent/circle_text.dart index de6c07e..bad0755 100644 --- a/lib/components/permanent/circle_text.dart +++ b/lib/components/permanent/circle_text.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; class CircleText extends StatelessWidget { - CircleText( + const CircleText( {Key? key, required this.text, this.size = 70, @@ -30,19 +30,19 @@ class CircleText extends StatelessWidget { BoxShadow( //阴影 color: shadowColor ?? Colors.grey.withOpacity(0.3), - offset: Offset(0.0, 0.0), blurRadius: 3.0, spreadRadius: 0.0, + offset: const Offset(0.0, 0.0), blurRadius: 3.0, spreadRadius: 0.0, ), ], ), child: Padding( - padding: EdgeInsets.all(3), + padding: const EdgeInsets.all(3), child: Container( alignment: Alignment.center, width: size, height: size, decoration: BoxDecoration( shape: BoxShape.circle, //圆形装饰线 - color: backgroundColor??Color(0xffD8F5FF), + color: backgroundColor??const Color(0xffD8F5FF), ), child: Text( text.length>2?text.substring(0, 2):text, @@ -50,7 +50,7 @@ class CircleText extends StatelessWidget { fontSize: fontSize, color: color, fontWeight: FontWeight.bold, - shadows: [ + shadows: const [ Shadow( //阴影 color: Colors.grey, diff --git a/lib/components/permanent/code/code_widget.dart b/lib/components/permanent/code/code_widget.dart index 8dadb17..d98bf0f 100644 --- a/lib/components/permanent/code/code_widget.dart +++ b/lib/components/permanent/code/code_widget.dart @@ -9,7 +9,7 @@ import 'highlighter_style.dart'; import 'language/dart_languge.dart'; class CodeWidget extends StatelessWidget { - CodeWidget({Key? key, required this.code,required this.style, this.fontSize = 13,this.fontFamily}) + const CodeWidget({Key? key, required this.code,required this.style, this.fontSize = 13,this.fontFamily}) : super(key: key); final String code; @@ -39,10 +39,10 @@ class CodeWidget extends StatelessWidget { body = SingleChildScrollView( child: Container( child: _codeWidget, - padding: EdgeInsets.all(10), + padding: const EdgeInsets.all(10), decoration: BoxDecoration( - color: style.backgroundColor ?? Color(0xffF6F8FA), - borderRadius: BorderRadius.all(Radius.circular(5.0))), + color: style.backgroundColor ?? const Color(0xffF6F8FA), + borderRadius: const BorderRadius.all(Radius.circular(5.0))), ), ); return body; diff --git a/lib/components/permanent/code/high_light_code.dart b/lib/components/permanent/code/high_light_code.dart index 18e8636..ca87837 100644 --- a/lib/components/permanent/code/high_light_code.dart +++ b/lib/components/permanent/code/high_light_code.dart @@ -52,9 +52,10 @@ class CodeHighlighter extends Highlighter { int currentPosition = 0; for (_HighlightSpan span in _spans) { - if (currentPosition != span.start) + if (currentPosition != span.start) { formattedText .add(TextSpan(text: _src.substring(currentPosition, span.start))); + } formattedText.add(TextSpan( style: span.textStyle(_style), text: span.textForSpan(_src))); @@ -62,9 +63,10 @@ class CodeHighlighter extends Highlighter { currentPosition = span.end; } - if (currentPosition != _src.length) + if (currentPosition != _src.length) { formattedText .add(TextSpan(text: _src.substring(currentPosition, _src.length))); + } return TextSpan(style: _style.baseStyle, children: formattedText); } else { @@ -184,16 +186,17 @@ class CodeHighlighter extends Highlighter { if (word.startsWith('_')) word = word.substring(1); - if (language.containsKeywords(word)) + if (language.containsKeywords(word)) { type = _HighlightType.keyword; - else if (language.containsInTypes(word)) + } else if (language.containsInTypes(word)) { type = _HighlightType.keyword; - else if (_firstLetterIsUpperCase(word)) + } else if (_firstLetterIsUpperCase(word)) { type = _HighlightType.klass; - else if (word.length >= 2 && + } else if (word.length >= 2 && word.startsWith('k') && - _firstLetterIsUpperCase(word.substring(1))) + _firstLetterIsUpperCase(word.substring(1))) { type = _HighlightType.constant; + } if (type != null) { _spans.add(_HighlightSpan( @@ -254,21 +257,22 @@ class _HighlightSpan { } TextStyle? textStyle(HighlighterStyle? style) { - if (type == _HighlightType.number) + if (type == _HighlightType.number) { return style?.numberStyle; - else if (type == _HighlightType.comment) + } else if (type == _HighlightType.comment) { return style?.commentStyle; - else if (type == _HighlightType.keyword) + } else if (type == _HighlightType.keyword) { return style?.keywordStyle; - else if (type == _HighlightType.string) + } else if (type == _HighlightType.string) { return style?.stringStyle; - else if (type == _HighlightType.punctuation) + } else if (type == _HighlightType.punctuation) { return style?.punctuationStyle; - else if (type == _HighlightType.klass) + } else if (type == _HighlightType.klass) { return style?.classStyle; - else if (type == _HighlightType.constant) + } else if (type == _HighlightType.constant) { return style?.constantStyle; - else + } else { return style?.baseStyle; + } } } diff --git a/lib/components/permanent/color_wrapper.dart b/lib/components/permanent/color_wrapper.dart index 231d951..fd0bb84 100644 --- a/lib/components/permanent/color_wrapper.dart +++ b/lib/components/permanent/color_wrapper.dart @@ -10,12 +10,12 @@ class WrapColor extends StatelessWidget { final double radius; final EdgeInsetsGeometry padding; - WrapColor( - {this.child, + const WrapColor( + {Key? key, this.child, this.color, this.radius = 5, this.padding = - const EdgeInsets.only(left: 4, right: 4, top: 0, bottom: 0)}); + const EdgeInsets.only(left: 4, right: 4, top: 0, bottom: 0)}) : super(key: key); @override Widget build(BuildContext context) { @@ -35,7 +35,7 @@ class Circled extends StatelessWidget { final Color color; final double radius; - Circled({required this.child, this.color = Colors.blue, this.radius = 15}); + const Circled({Key? key, required this.child, this.color = Colors.blue, this.radius = 15}) : super(key: key); @override Widget build(BuildContext context) { diff --git a/lib/components/permanent/edit_panel.dart b/lib/components/permanent/edit_panel.dart index a562c6f..9071d30 100644 --- a/lib/components/permanent/edit_panel.dart +++ b/lib/components/permanent/edit_panel.dart @@ -4,7 +4,7 @@ typedef ChangeCallback = void Function(String str); ///输入面板 class EditPanel extends StatefulWidget { - EditPanel( + const EditPanel( {Key? key, this.backgroundColor = Colors.white, this.color = Colors.lightBlue, diff --git a/lib/components/permanent/feedback_widget.dart b/lib/components/permanent/feedback_widget.dart index 0594c01..f46e1c0 100644 --- a/lib/components/permanent/feedback_widget.dart +++ b/lib/components/permanent/feedback_widget.dart @@ -21,7 +21,7 @@ class FeedbackWidget extends StatefulWidget { final Function()? onLongPressed; final double a; - FeedbackWidget({ + const FeedbackWidget({Key? key, required this.child, this.mode = FeedMode.scale, this.a = 0.9, @@ -29,7 +29,7 @@ class FeedbackWidget extends StatefulWidget { this.duration = const Duration(milliseconds: 150), this.onPressed, this.onEnd, - }); + }) : super(key: key); @override _FeedBackState createState() => _FeedBackState(); @@ -96,6 +96,5 @@ class _FeedBackState extends State with SingleTickerProviderStat case FeedMode.rotate: return Transform.rotate(angle: rate * pi * 2, child: widget.child); } - return Container(); } } diff --git a/lib/components/permanent/icon_input.dart b/lib/components/permanent/icon_input.dart index 71bef62..d261774 100644 --- a/lib/components/permanent/icon_input.dart +++ b/lib/components/permanent/icon_input.dart @@ -9,7 +9,7 @@ class IconInput extends StatelessWidget { final Widget textFiled; final IconData icon; - IconInput({Key? key,required this.textFiled,required this.icon}) : super(key: key); + const IconInput({Key? key,required this.textFiled,required this.icon}) : super(key: key); @override Widget build(BuildContext context) { @@ -25,7 +25,7 @@ class IconInput extends StatelessWidget { child: Row( children: [ Padding( - padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 15.0), + padding: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 15.0), child: Icon( icon, color: Colors.grey, diff --git a/lib/components/permanent/input_button.dart b/lib/components/permanent/input_button.dart index b0b9e77..81323b3 100644 --- a/lib/components/permanent/input_button.dart +++ b/lib/components/permanent/input_button.dart @@ -27,7 +27,7 @@ class InputButton extends StatefulWidget { final InputButtonConfig config; final String defaultText; - InputButton( + const InputButton( {Key? key, this.onSubmit, this.onChanged, @@ -78,12 +78,12 @@ class _InputButtonState extends State { hintStyle: TextStyle(color: Colors.black26, fontSize: _fontSize), contentPadding: EdgeInsets.only(left: 14.0, top: -_fontSize), focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: Colors.white), + borderSide: const BorderSide(color: Colors.white), borderRadius: BorderRadius.only(topLeft: _radius, bottomLeft: _radius), ), enabledBorder: UnderlineInputBorder( - borderSide: BorderSide(color: Colors.white), + borderSide: const BorderSide(color: Colors.white), borderRadius: BorderRadius.only(topLeft: _radius, bottomLeft: _radius), ), @@ -97,7 +97,7 @@ class _InputButtonState extends State { elevation: 0, child: Icon(widget.config.iconData,color: Theme.of(context).primaryColor,), - color: Color(0x99E0E0E0), + color: const Color(0x99E0E0E0), padding: EdgeInsets.zero, onPressed: () { FocusScope.of(context).requestFocus(FocusNode()); //收起键盘 @@ -113,7 +113,7 @@ class _InputButtonState extends State { mainAxisAlignment: MainAxisAlignment.center, children: [ Expanded( - child: Container( + child: SizedBox( child: textField, height: _height, ), @@ -124,7 +124,7 @@ class _InputButtonState extends State { bottomLeft: Radius.zero, topRight: _radius, bottomRight: _radius), - child: Container( + child: SizedBox( child: btn, width: _height, height: _height, diff --git a/lib/components/permanent/loading/planet_loading.dart b/lib/components/permanent/loading/planet_loading.dart index 6986618..9ebfdbc 100644 --- a/lib/components/permanent/loading/planet_loading.dart +++ b/lib/components/permanent/loading/planet_loading.dart @@ -14,38 +14,38 @@ class PlateLoading extends StatelessWidget { @override Widget build(BuildContext context) { - return Container( + return SizedBox( width: 150, height: 150, child: Stack(alignment: Alignment.center, children: [ - Text('loading ...'), + const Text('loading ...'), MathRunner( reverse: false, f: (t) => 0.4*cos(t * pi), g: (t) => 0.7 * sin(t * pi), - child: Circle(color: Colors.blue,radius: 8,)), + child: const Circle(color: Colors.blue,radius: 8,)), MathRunner( reverse: false, f: (t) => 0.7 * cos(t * pi), g: (t) => 1 * sin(t * pi), - child: Circle(color: Colors.yellow,radius: 8,)), + child: const Circle(color: Colors.yellow,radius: 8,)), MathRunner( reverse: false, f: (t) => -0.8 *cos(t * pi), g: (t) => 1 * sin(t * pi), - child: Circle(color: Colors.red,radius: 8,)), + child: const Circle(color: Colors.red,radius: 8,)), MathRunner( reverse: false, f: (t) => 1*cos(t * pi), g: (t) => 0.7 * sin(t * pi), - child: Circle(color: Colors.green,radius: 8,)), + child: const Circle(color: Colors.green,radius: 8,)), MathRunner( reverse: false, f: (t) => 1 * cos(t * pi), g: (t) => -0.7 * sin(t * pi), - child: Circle(color: Colors.purple,radius: 8,)), + child: const Circle(color: Colors.purple,radius: 8,)), ]), ); } diff --git a/lib/components/permanent/markdown/markdown_widget.dart b/lib/components/permanent/markdown/markdown_widget.dart index 8ef915d..9dfe2c6 100644 --- a/lib/components/permanent/markdown/markdown_widget.dart +++ b/lib/components/permanent/markdown/markdown_widget.dart @@ -19,13 +19,13 @@ class MarkdownWidget extends StatelessWidget { MarkdownStyleSheet markdownStyleSheet = MarkdownStyleSheet.fromTheme(Theme.of(context)); return markdownStyleSheet.copyWith( codeblockDecoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(4.0)), + borderRadius: const BorderRadius.all(Radius.circular(4.0)), color: codeBackground, border: Border.all( color: UnitColor.subTextColor, width: 0.3))) .copyWith( blockquoteDecoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(4.0)), + borderRadius: const BorderRadius.all(Radius.circular(4.0)), color: UnitColor.subTextColor, border: Border.all( color: UnitColor.subTextColor, width: 0.3)), @@ -33,7 +33,7 @@ class MarkdownWidget extends StatelessWidget { } _getStyleSheetDark(BuildContext context) { - return _getCommonSheet(context, Color.fromRGBO(40, 44, 52, 1.00)).copyWith( + return _getCommonSheet(context, const Color.fromRGBO(40, 44, 52, 1.00)).copyWith( p: TStyleUnit.smallTextWhite, h1: TStyleUnit.largeLargeTextWhite, h2: TStyleUnit.largeTextWhiteBold, @@ -48,7 +48,7 @@ class MarkdownWidget extends StatelessWidget { } MarkdownStyleSheet _getStyleSheetWhite(BuildContext context) { - return _getCommonSheet(context, Color.fromRGBO(40, 44, 52, 1.00)).copyWith( + return _getCommonSheet(context, const Color.fromRGBO(40, 44, 52, 1.00)).copyWith( p: TStyleUnit.smallText, h1: TStyleUnit.largeLargeText, h2: TStyleUnit.largeTextBold, @@ -62,7 +62,7 @@ class MarkdownWidget extends StatelessWidget { } _getStyleSheetTheme(BuildContext context) { - return _getCommonSheet(context, Color.fromRGBO(40, 44, 52, 1.00)).copyWith( + return _getCommonSheet(context, const Color.fromRGBO(40, 44, 52, 1.00)).copyWith( p: TStyleUnit.smallTextWhite, h1: TStyleUnit.largeLargeTextWhite, h2: TStyleUnit.largeTextWhiteBold, @@ -105,8 +105,8 @@ class MarkdownWidget extends StatelessWidget { _getMarkDownData(String markdownData) { ///优化图片显示 RegExp exp = RegExp(r'!\[.*\]\((.+)\)'); - RegExp expImg = RegExp("|\/>)"); - RegExp expSrc = RegExp("src=[\'\"]?([^\'\"]*)[\'\"]?"); + RegExp expImg = RegExp("|/>)"); + RegExp expSrc = RegExp("src=['\"]?([^'\"]*)['\"]?"); String mdDataCode = markdownData; try { @@ -115,7 +115,7 @@ class MarkdownWidget extends StatelessWidget { for (Match m in tags) { String imageMatch = m.group(0)??''; if (!imageMatch.contains(".svg")) { - String match = imageMatch.replaceAll("\)", "?raw=true)"); + String match = imageMatch.replaceAll(")", "?raw=true)"); if (!match.contains(".svg") && match.contains("http")) { ///增加点击 String src = match diff --git a/lib/components/permanent/markdown/syntax_high_lighter.dart b/lib/components/permanent/markdown/syntax_high_lighter.dart index 2a9c6b2..10ae34f 100644 --- a/lib/components/permanent/markdown/syntax_high_lighter.dart +++ b/lib/components/permanent/markdown/syntax_high_lighter.dart @@ -15,14 +15,14 @@ class SyntaxHighlighterStyle { //123 static SyntaxHighlighterStyle defaultStyle() { return SyntaxHighlighterStyle( - baseStyle: TextStyle(color: Color.fromRGBO(212, 212, 212, 1.0)), + baseStyle: const TextStyle(color: Color.fromRGBO(212, 212, 212, 1.0)), numberStyle: TextStyle(color: Colors.blue[800]), - commentStyle: TextStyle(color: Color.fromRGBO(124, 126, 120, 1.0)), - keywordStyle: TextStyle(color: Color.fromRGBO(228, 125, 246, 1.0)), - stringStyle: TextStyle(color: Color.fromRGBO(150, 190, 118, 1.0)), + commentStyle: const TextStyle(color: Color.fromRGBO(124, 126, 120, 1.0)), + keywordStyle: const TextStyle(color: Color.fromRGBO(228, 125, 246, 1.0)), + stringStyle: const TextStyle(color: Color.fromRGBO(150, 190, 118, 1.0)), punctuationStyle: - TextStyle(color: Color.fromRGBO(212, 212, 212, 1.0)), - classStyle: TextStyle(color: Color.fromRGBO(150, 190, 118, 1.0)), + const TextStyle(color: Color.fromRGBO(212, 212, 212, 1.0)), + classStyle: const TextStyle(color: Color.fromRGBO(150, 190, 118, 1.0)), constantStyle: TextStyle(color: Colors.brown[500])); } @@ -147,9 +147,10 @@ class DartSyntaxHighlighter extends SyntaxCostomHighlighter { int currentPosition = 0; for (_HighlightSpan span in _spans) { - if (currentPosition != span.start) + if (currentPosition != span.start) { formattedText.add( TextSpan(text: _src.substring(currentPosition, span.start))); + } formattedText.add( TextSpan( style: span.textStyle(_style), text: span.textForSpan(_src))); @@ -157,9 +158,10 @@ class DartSyntaxHighlighter extends SyntaxCostomHighlighter { currentPosition = span.end; } - if (currentPosition != _src.length) + if (currentPosition != _src.length) { formattedText.add( TextSpan(text: _src.substring(currentPosition, _src.length))); + } return TextSpan(style: _style?.baseStyle, children: formattedText); } else { @@ -308,16 +310,17 @@ class DartSyntaxHighlighter extends SyntaxCostomHighlighter { String word = _scanner.lastMatch![0]!; if (word.startsWith("_")) word = word.substring(1); - if (_kKeywords.contains(word)) + if (_kKeywords.contains(word)) { type = _HighlightType.keyword; - else if (_kBuiltInTypes.contains(word)) + } else if (_kBuiltInTypes.contains(word)) { type = _HighlightType.keyword; - else if (_firstLetterIsUpperCase(word)) + } else if (_firstLetterIsUpperCase(word)) { type = _HighlightType.klass; - else if (word.length >= 2 && + } else if (word.length >= 2 && word.startsWith("k") && - _firstLetterIsUpperCase(word.substring(1))) + _firstLetterIsUpperCase(word.substring(1))) { type = _HighlightType.constant; + } if (type != null) { _spans.add( _HighlightSpan( @@ -389,21 +392,22 @@ class _HighlightSpan { } TextStyle? textStyle(SyntaxHighlighterStyle? style) { - if (type == _HighlightType.number) + if (type == _HighlightType.number) { return style?.numberStyle; - else if (type == _HighlightType.comment) + } else if (type == _HighlightType.comment) { return style?.commentStyle; - else if (type == _HighlightType.keyword) + } else if (type == _HighlightType.keyword) { return style?.keywordStyle; - else if (type == _HighlightType.string) + } else if (type == _HighlightType.string) { return style?.stringStyle; - else if (type == _HighlightType.punctuation) + } else if (type == _HighlightType.punctuation) { return style?.punctuationStyle; - else if (type == _HighlightType.klass) + } else if (type == _HighlightType.klass) { return style?.classStyle; - else if (type == _HighlightType.constant) + } else if (type == _HighlightType.constant) { return style?.constantStyle; - else + } else { return style?.baseStyle; + } } } diff --git a/lib/components/permanent/math_runner.dart b/lib/components/permanent/math_runner.dart index 2e2e4ec..77e595f 100644 --- a/lib/components/permanent/math_runner.dart +++ b/lib/components/permanent/math_runner.dart @@ -7,7 +7,12 @@ import 'package:flutter/material.dart'; typedef FunNum1 = Function(double t); class MathRunner extends StatefulWidget { - MathRunner({Key? key, this.child,required this.f,required this.g, this.reverse = true}) + const MathRunner( + {Key? key, + this.child, + required this.f, + required this.g, + this.reverse = true}) : super(key: key); final Widget? child; @@ -28,8 +33,10 @@ class _MathRunnerState extends State @override void initState() { - _controller = - AnimationController(vsync: this, duration: Duration(seconds: 3))..repeat(reverse: widget.reverse); + _controller = AnimationController( + vsync: this, + duration: const Duration(seconds: 3), + )..repeat(reverse: widget.reverse); animationX = Tween(begin: -1.0, end: 1.0).animate(_controller) ..addListener(() { setState(() { diff --git a/lib/components/permanent/multi_chip_filter.dart b/lib/components/permanent/multi_chip_filter.dart index 9a71402..665e1c6 100644 --- a/lib/components/permanent/multi_chip_filter.dart +++ b/lib/components/permanent/multi_chip_filter.dart @@ -34,7 +34,7 @@ class _MultiChipFilterState extends State> { bool selected = _selected.contains(index); return FilterChip( selectedColor: Colors.orange.withAlpha(55), - labelPadding: EdgeInsets.only(left: 5,right: 5), + labelPadding: const EdgeInsets.only(left: 5,right: 5), selectedShadowColor: Colors.blue, shadowColor: Colors.orangeAccent, pressElevation: 5, diff --git a/lib/components/permanent/panel.dart b/lib/components/permanent/panel.dart index 75b61ca..678d4cc 100644 --- a/lib/components/permanent/panel.dart +++ b/lib/components/permanent/panel.dart @@ -15,7 +15,7 @@ class Panel extends StatelessWidget { child: child, padding: const EdgeInsets.all(10), decoration: BoxDecoration( - color: color ?? Color(0xffF6F8FA), + color: color ?? const Color(0xffF6F8FA), borderRadius: BorderRadius.all(Radius.circular(radius))), ); } diff --git a/lib/components/permanent/tag.dart b/lib/components/permanent/tag.dart index e240302..f588994 100644 --- a/lib/components/permanent/tag.dart +++ b/lib/components/permanent/tag.dart @@ -6,11 +6,11 @@ class Tag extends StatelessWidget { final double tranRate; final Color color; - const Tag({this.size = const Size(100, 150),this.shadowHeight=9.0,this.tranRate=0.25,this.color=Colors.red}); + const Tag({Key? key, this.size = const Size(100, 150),this.shadowHeight=9.0,this.tranRate=0.25,this.color=Colors.red}) : super(key: key); @override Widget build(BuildContext context) { - return Container( + return SizedBox( width: size.width, height: size.height, child: CustomPaint( diff --git a/lib/components/permanent/text_typer.dart b/lib/components/permanent/text_typer.dart index fd36b9b..34e5e4e 100644 --- a/lib/components/permanent/text_typer.dart +++ b/lib/components/permanent/text_typer.dart @@ -7,7 +7,7 @@ class TextTyper extends StatefulWidget { final Duration duration; final TextStyle textStyle; - TextTyper( + const TextTyper( {required this.text, Key? key, this.textStyle = diff --git a/lib/components/project/color_chooser.dart b/lib/components/project/color_chooser.dart index 5105f70..9070a3e 100644 --- a/lib/components/project/color_chooser.dart +++ b/lib/components/project/color_chooser.dart @@ -5,7 +5,7 @@ import 'package:flutter_unit/components/permanent/feedback_widget.dart'; typedef CheckCallback = void Function(T color); class ColorChooser extends StatefulWidget { - ColorChooser( + const ColorChooser( {Key? key, this.defaultIndex=0, this.radius = 10, @@ -50,7 +50,7 @@ class _ColorChooserState extends State { color: widget.colors[i], radius: widget.radius, child: _checkLi[i] - ? Icon( + ? const Icon( Icons.star, size: 15, color: Colors.white, @@ -64,7 +64,7 @@ class _ColorChooserState extends State { } class IconChooser extends StatefulWidget { - IconChooser( + const IconChooser( {Key? key, this.radius = 20, required this.icons, diff --git a/lib/components/project/default/empty_shower.dart b/lib/components/project/default/empty_shower.dart index bfaed4f..a989358 100644 --- a/lib/components/project/default/empty_shower.dart +++ b/lib/components/project/default/empty_shower.dart @@ -23,7 +23,7 @@ class EmptyShower extends StatelessWidget { children: [ Icon(Icons.style, color: color, size: 120.0), Container( - padding: EdgeInsets.only(top: 10.0), + padding: const EdgeInsets.only(top: 10.0), child: Text( message, textAlign: TextAlign.center, diff --git a/lib/components/project/default/error_shower.dart b/lib/components/project/default/error_shower.dart index 58ef75c..131c3ff 100644 --- a/lib/components/project/default/error_shower.dart +++ b/lib/components/project/default/error_shower.dart @@ -9,7 +9,7 @@ import 'package:flutter_unit/app/res/style_unit.dart'; class ErrorShower extends StatelessWidget { final String error; - ErrorShower({Key? key, this.error = "出现异常"}) : super(key: key); + const ErrorShower({Key? key, this.error = "出现异常"}) : super(key: key); @override Widget build(BuildContext context) { @@ -20,7 +20,7 @@ class ErrorShower extends StatelessWidget { alignment: WrapAlignment.center, crossAxisAlignment: WrapCrossAlignment.center, children: [ - Container( + const SizedBox( width: 80, height: 80, child: Icon( diff --git a/lib/components/project/default/loading_shower.dart b/lib/components/project/default/loading_shower.dart index 48be58f..24a2b3b 100644 --- a/lib/components/project/default/loading_shower.dart +++ b/lib/components/project/default/loading_shower.dart @@ -19,7 +19,7 @@ class LoadingShower extends StatelessWidget { alignment: WrapAlignment.center, crossAxisAlignment: WrapCrossAlignment.center, children: [ - Container( + SizedBox( width: 80, height: 80, child: SpinKitFadingCube(color: Theme.of(context).primaryColor)), diff --git a/lib/components/project/dialogs/delete_category_dialog.dart b/lib/components/project/dialogs/delete_category_dialog.dart index 11b3f0f..a1c82d3 100644 --- a/lib/components/project/dialogs/delete_category_dialog.dart +++ b/lib/components/project/dialogs/delete_category_dialog.dart @@ -34,7 +34,7 @@ class DeleteCategoryDialog extends StatelessWidget { children: [ Text( title, - style: TextStyle(color: Colors.red, fontSize: 20), + style: const TextStyle(color: Colors.red, fontSize: 20), ), ], ); @@ -44,7 +44,7 @@ class DeleteCategoryDialog extends StatelessWidget { return Padding( padding: const EdgeInsets.all(15.0), child: Text(content, - style: TextStyle(color: Colors.grey, fontSize: 16), + style: const TextStyle(color: Colors.grey, fontSize: 16), textAlign: TextAlign.justify, ), ); @@ -63,9 +63,9 @@ class DeleteCategoryDialog extends StatelessWidget { height: 40, width: 100, decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(30)), + borderRadius: const BorderRadius.all(Radius.circular(30)), color: Theme.of(context).primaryColor), - child: Text('确 定', + child: const Text('确 定', style: TextStyle(color: Colors.white, fontSize: 16)), ), ), @@ -75,10 +75,10 @@ class DeleteCategoryDialog extends StatelessWidget { alignment: Alignment.center, height: 40, width: 100, - decoration: BoxDecoration( + decoration: const BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(30)), color: Colors.orangeAccent), - child: Text('取 消', + child: const Text('取 消', style: TextStyle(color: Colors.white, fontSize: 16)), ), ) @@ -89,13 +89,13 @@ class DeleteCategoryDialog extends StatelessWidget { _buildBar(context) => Row( children: [ - Spacer(), + const Spacer(), GestureDetector( onTap: () => Navigator.of(context).pop(), child: Container( height: 30, alignment: Alignment.centerRight, - padding: EdgeInsets.only(right: 10, top: 5), + padding: const EdgeInsets.only(right: 10, top: 5), child: Icon( Icons.close, color:Theme.of(context).primaryColor, diff --git a/lib/components/project/dialogs/dialog_about.dart b/lib/components/project/dialogs/dialog_about.dart index a5fa955..b5c28d9 100644 --- a/lib/components/project/dialogs/dialog_about.dart +++ b/lib/components/project/dialogs/dialog_about.dart @@ -7,7 +7,7 @@ class DialogAbout extends StatelessWidget { static show(BuildContext context){ showDialog(//内置方法,创建对话弹框 context: context, - builder: (_) => DialogAbout()); + builder: (_) => const DialogAbout()); } @override Widget build(BuildContext context) { @@ -19,12 +19,12 @@ class DialogAbout extends StatelessWidget { width: 30, height: 30, ), - SizedBox( + const SizedBox( width: 10, ), - Expanded(child: Text("关于",style: TextStyle(fontSize: 18),)), + const Expanded(child: Text("关于",style: TextStyle(fontSize: 18),)), InkWell( - child: Icon(Icons.close), + child: const Icon(Icons.close), onTap: ()=>Navigator.of(context).pop(), ) ], @@ -32,7 +32,7 @@ class DialogAbout extends StatelessWidget { Widget content = Column( //内容 mainAxisSize: MainAxisSize.min, - children: [ + children: const [ // Image.asset( // "assets/images/icon_flutter.png", // width: 50, @@ -50,8 +50,8 @@ class DialogAbout extends StatelessWidget { Padding( padding: const EdgeInsets.only(right:15.0,bottom: 10,top: 10), child: Column( - children: [ - Text( + children: const[ + Text( "Power By GF·J·Toly\n张风捷特烈", textAlign: TextAlign.center, ), diff --git a/lib/components/project/items/category_list_item.dart b/lib/components/project/items/category_list_item.dart index e2c767f..a6f7797 100644 --- a/lib/components/project/items/category_list_item.dart +++ b/lib/components/project/items/category_list_item.dart @@ -13,7 +13,7 @@ class CategoryListItem extends StatelessWidget { final Function(CategoryModel)? onDeleteItemClick; final Function(CategoryModel)? onEditItemClick; - CategoryListItem({required this.data, this.onDeleteItemClick,this.onEditItemClick}); + const CategoryListItem({Key? key, required this.data, this.onDeleteItemClick,this.onEditItemClick}) : super(key: key); @override Widget build(BuildContext context) { diff --git a/lib/components/project/items/collect_widget_list_item.dart b/lib/components/project/items/collect_widget_list_item.dart index 63d04d8..5cbccb3 100644 --- a/lib/components/project/items/collect_widget_list_item.dart +++ b/lib/components/project/items/collect_widget_list_item.dart @@ -88,8 +88,8 @@ class CollectWidgetListItem extends StatelessWidget { fontSize: 17, fontWeight: FontWeight.bold, shadows: [ - const Shadow( - color: Colors.white, offset: const Offset(.3, .3)) + Shadow( + color: Colors.white, offset: Offset(.3, .3)) ])), ), ], @@ -104,7 +104,7 @@ class CollectWidgetListItem extends StatelessWidget { style: TextStyle( color: Colors.grey[600], fontSize: 14, - shadows: [const Shadow(color: Colors.white, offset: const Offset(.5, .5))]), + shadows: const [Shadow(color: Colors.white, offset: Offset(.5, .5))]), ), ); } diff --git a/lib/components/project/items/gallery/gallery_card_item.dart b/lib/components/project/items/gallery/gallery_card_item.dart index 9a3dbf0..e348321 100644 --- a/lib/components/project/items/gallery/gallery_card_item.dart +++ b/lib/components/project/items/gallery/gallery_card_item.dart @@ -11,7 +11,7 @@ class GalleryCardItem extends StatelessWidget { final GalleryInfo galleryInfo; final int count; - GalleryCardItem({ + const GalleryCardItem({ Key? key, required this.galleryInfo, this.count = 0, @@ -20,7 +20,7 @@ class GalleryCardItem extends StatelessWidget { @override Widget build(BuildContext context) { return Card( - shape: RoundedRectangleBorder( + shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(20))), child: Container( height: double.maxFinite, @@ -35,7 +35,7 @@ class GalleryCardItem extends StatelessWidget { image: DecorationImage( fit: BoxFit.cover, image: AssetImage(galleryInfo.image)), - borderRadius: BorderRadius.only( + borderRadius: const BorderRadius.only( topLeft: Radius.circular(20), topRight: Radius.circular(20), )) @@ -60,14 +60,14 @@ class GalleryCardItem extends StatelessWidget { blurRadius: .5) ]), ), - Spacer(), + const Spacer(), WrapColor( radius: 6, padding: - EdgeInsets.only(left: 6, right: 6, top: 2, bottom: 3), + const EdgeInsets.only(left: 6, right: 6, top: 2, bottom: 3), child: Text( "$count 幅", - style: TextStyle( + style: const TextStyle( fontWeight: FontWeight.bold, color: Colors.white, fontSize: 12), @@ -90,7 +90,7 @@ class GalleryCardItem extends StatelessWidget { ) ], ), - decoration: BoxDecoration( + decoration: const BoxDecoration( color: Colors.white, borderRadius: BorderRadius.all( Radius.circular(20), diff --git a/lib/components/project/items/widget/home_item_support.dart b/lib/components/project/items/widget/home_item_support.dart index f003c6a..6946adf 100644 --- a/lib/components/project/items/widget/home_item_support.dart +++ b/lib/components/project/items/widget/home_item_support.dart @@ -19,19 +19,19 @@ class HomeItemSupport { static Map shapeBorderMap={ 1: TechnoShapeBorder(), 2: RoundedRectangleBorder(borderRadius: BorderRadius.circular(6)), - 3: CouponShapeBorder( + 3: const CouponShapeBorder( hasTopHole: true, hasBottomHole: false, hasLine: false, edgeRadius: 25, lineRate: 0.20), - 4: CouponShapeBorder( + 4: const CouponShapeBorder( hasTopHole: false, hasBottomHole: false, hasLine: false, edgeRadius: 25, lineRate: 0.20), - 5: CouponShapeBorder( + 5: const CouponShapeBorder( hasTopHole: true, hasBottomHole: false, hasLine: false, @@ -78,7 +78,7 @@ class HomeItemSupport { id: Random().nextInt(10000), name: 'Container', nameCN: "", - links: [], + links: const [], lever: 5, family: WidgetFamily.statelessWidget, info: '用于容纳单个子组件的容器组件。集成了若干个单子组件的功能,如内外边距、形变、装饰、约束等...'); diff --git a/lib/components/project/items/widget/techno_widget_list_item.dart b/lib/components/project/items/widget/techno_widget_list_item.dart index 5ef9499..9a41122 100644 --- a/lib/components/project/items/widget/techno_widget_list_item.dart +++ b/lib/components/project/items/widget/techno_widget_list_item.dart @@ -13,7 +13,7 @@ import 'package:flutter_unit/widget_system/repositories/model/widget_model.dart' class TechnoWidgetListItem extends StatelessWidget { final WidgetModel data; - TechnoWidgetListItem({required this.data}); + const TechnoWidgetListItem({Key? key, required this.data}) : super(key: key); @override Widget build(BuildContext context) { @@ -114,7 +114,7 @@ class TechnoWidgetListItem extends StatelessWidget { fontWeight: FontWeight.bold, decoration: data.deprecated?TextDecoration.lineThrough:TextDecoration.none, decorationThickness: 2, - shadows: [ + shadows: const [ Shadow(color: Colors.white, offset: Offset(.3, .3)) ])), ), @@ -130,8 +130,8 @@ class TechnoWidgetListItem extends StatelessWidget { data.info, maxLines: 2, overflow: TextOverflow.ellipsis, - style: TextStyle(color: Colors.grey[600], fontSize: 14, shadows: [ - const Shadow(color: Colors.white, offset: const Offset(.5, .5)) + style: TextStyle(color: Colors.grey[600], fontSize: 14, shadows: const [ + Shadow(color: Colors.white, offset: Offset(.5, .5)) ]), ), ); diff --git a/lib/components/project/nav/unit_bottom_bar.dart b/lib/components/project/nav/unit_bottom_bar.dart index 3aa960a..e65677c 100644 --- a/lib/components/project/nav/unit_bottom_bar.dart +++ b/lib/components/project/nav/unit_bottom_bar.dart @@ -149,10 +149,10 @@ class _UnitBottomBarState extends State { size: getIconSizeByPosition(3), color: getIconColorByPosition(3), )), - Positioned( + const Positioned( left: 20, top: 5, - child: const UpdateRedPoint()) + child: UpdateRedPoint()) ], ), ), diff --git a/lib/components/project/overlay_tool_wrapper.dart b/lib/components/project/overlay_tool_wrapper.dart index e889f2c..35e6638 100644 --- a/lib/components/project/overlay_tool_wrapper.dart +++ b/lib/components/project/overlay_tool_wrapper.dart @@ -15,7 +15,7 @@ import '../permanent/color_wrapper.dart'; class OverlayToolWrapper extends StatefulWidget { final Widget child; - OverlayToolWrapper({Key? key,required this.child}) : super(key: key); + const OverlayToolWrapper({Key? key,required this.child}) : super(key: key); @override OverlayToolWrapperState createState() => OverlayToolWrapperState(); @@ -56,7 +56,7 @@ class OverlayToolWrapperState extends State super.initState(); _ctrl = AnimationController( - duration: Duration(milliseconds: 400), + duration: const Duration(milliseconds: 400), vsync: this, )..addListener(_listenAnimate); @@ -117,8 +117,8 @@ class OverlayToolWrapperState extends State child: Container( decoration: BoxDecoration( color: Colors.blue, - image: DecorationImage( - image: const AssetImage('assets/images/icon_head.webp')), + image: const DecorationImage( + image: AssetImage('assets/images/icon_head.webp')), borderRadius: BorderRadius.circular(menuSize / 2)), ), ), @@ -140,7 +140,6 @@ class OverlayToolWrapperState extends State case 0: _doClose(); return true; - break; case 1: _toPoint(); break; diff --git a/lib/components/project/unit_drawer_header.dart b/lib/components/project/unit_drawer_header.dart index d3a5efd..0d55729 100644 --- a/lib/components/project/unit_drawer_header.dart +++ b/lib/components/project/unit_drawer_header.dart @@ -13,8 +13,8 @@ class UnitDrawerHeader extends StatelessWidget { @override Widget build(BuildContext context) { return DrawerHeader( - padding: EdgeInsets.only(top: 10, left: 15), - decoration: BoxDecoration( + padding: const EdgeInsets.only(top: 10, left: 15), + decoration: const BoxDecoration( image: DecorationImage( image: AssetImage('assets/images/wy_300x200_filter.webp'), fit: BoxFit.cover), @@ -25,7 +25,7 @@ class UnitDrawerHeader extends StatelessWidget { Wrap( spacing: 10, crossAxisAlignment: WrapCrossAlignment.center, - children: [ + children: const [ FlutterLogo( size: 35, ), @@ -40,29 +40,29 @@ class UnitDrawerHeader extends StatelessWidget { ), ], ), - SizedBox( + const SizedBox( height: 15, ), Text( 'The Unity Of Flutter, The Unity Of Coder.', style: TextStyle(fontSize: 15, color: Colors.white, shadows: [ - Shadow(color: color, offset: Offset(.5, .5), blurRadius: 1) + Shadow(color: color, offset: const Offset(.5, .5), blurRadius: 1) ]), ), - SizedBox( + const SizedBox( height: 5, ), Text( 'Flutter的联合,编程者的联合。', style: TextStyle(fontSize: 15, color: Colors.white, shadows: [ - Shadow(color: color, offset: Offset(.5, .5), blurRadius: 1) + Shadow(color: color, offset: const Offset(.5, .5), blurRadius: 1) ]), ), - SizedBox( + const SizedBox( height: 10, ), Row( - children: [ + children: const [ Spacer( flex: 5, ), diff --git a/lib/components/project/widget_node_panel.dart b/lib/components/project/widget_node_panel.dart index 8fb2328..0658e22 100644 --- a/lib/components/project/widget_node_panel.dart +++ b/lib/components/project/widget_node_panel.dart @@ -45,12 +45,12 @@ class _WidgetNodePanelState extends State { @override Widget build(BuildContext context) { return Container( - margin: EdgeInsets.all(10), + margin: const EdgeInsets.all(10), child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ buildNodeTitle(), - SizedBox( + const SizedBox( height: 20, ), _buildCode(context), @@ -59,7 +59,7 @@ class _WidgetNodePanelState extends State { child: widget.show, ), _buildNodeInfo(), - Divider(), + const Divider(), ], ), ); @@ -77,7 +77,7 @@ class _WidgetNodePanelState extends State { Expanded( child: Text( widget.text, - style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16), + style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 16), ), ), _buildShareButton(), @@ -85,12 +85,12 @@ class _WidgetNodePanelState extends State { ], ); - Widget _buildNodeInfo() => Container( + Widget _buildNodeInfo() => SizedBox( width: double.infinity, child: Panel( child: Text( widget.subText, - style: TextStyle(fontSize: 14), + style: const TextStyle(fontSize: 14), )), ); @@ -125,8 +125,8 @@ class _WidgetNodePanelState extends State { Widget _buildCode(BuildContext context) => AnimatedCrossFade( firstCurve: Curves.easeInCirc, secondCurve: Curves.easeInToLinear, - firstChild: Container(), - secondChild: Container( + firstChild: const SizedBox(), + secondChild: SizedBox( width: MediaQuery.of(context).size.width, child: CodeWidget( fontFamily: widget.codeFamily, @@ -135,7 +135,7 @@ class _WidgetNodePanelState extends State { HighlighterStyle.fromColors(HighlighterStyle.lightColor), ), ), - duration: Duration(milliseconds: 200), + duration: const Duration(milliseconds: 200), crossFadeState: _crossFadeState, ); diff --git a/lib/components/project/wrapper/honour_wrapper.dart b/lib/components/project/wrapper/honour_wrapper.dart index e598d57..8bc80d4 100644 --- a/lib/components/project/wrapper/honour_wrapper.dart +++ b/lib/components/project/wrapper/honour_wrapper.dart @@ -22,7 +22,7 @@ class _HonourWrapperState extends State @override void initState() { super.initState(); - _ctrl = AnimationController(vsync: this, duration: Duration(seconds: 5)) + _ctrl = AnimationController(vsync: this, duration: const Duration(seconds: 5)) ..repeat(reverse: true); } @@ -53,7 +53,7 @@ class _HonourWrapperState extends State class HonourPainter extends CustomPainter { final Animation factor; final TextPainter _textPainter = TextPainter( - text: TextSpan( + text: const TextSpan( text: '尊享', style: TextStyle(fontSize: 10, color: Colors.white, height: 1), ), @@ -77,7 +77,7 @@ class HonourPainter extends CustomPainter { ..color = const Color(0xaaFFAB40) ..maskFilter = const MaskFilter.blur(BlurStyle.solid, 2) ..shader = ui.Gradient.linear( - Offset(0, 0), Offset(size.width, 0), colors, [0, 0.3, 0.6, 1.0])); + const Offset(0, 0), Offset(size.width, 0), colors, [0, 0.3, 0.6, 1.0])); canvas.drawLine( Offset.zero.translate(size.width * factor.value, 0), Offset.zero.translate(size.width * factor.value / 2, size.height), @@ -92,7 +92,7 @@ class HonourPainter extends CustomPainter { Offset.zero .translate(size.width * factor.value - 3, -15 - 3.0) .translate(-_textPainter.size.width / 2, 0) & - (_textPainter.size + Offset(6, 6)), + (_textPainter.size + const Offset(6, 6)), 5, 5), Paint()..color = Colors.green); diff --git a/lib/main.dart b/lib/main.dart index 558ffa9..e5a60f0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -9,7 +9,7 @@ void main() { WidgetsFlutterBinding.ensureInitialized(); //滚动性能优化 1.22.0 GestureBinding.instance?.resamplingEnabled = true; - runApp(BlocWrapper(child: FlutterUnit())); + runApp(const BlocWrapper(child: FlutterUnit())); } diff --git a/lib/painter_system/anim/bezier3_player/bezier3_palyer.dart b/lib/painter_system/anim/bezier3_player/bezier3_palyer.dart index c178a50..4d952e5 100644 --- a/lib/painter_system/anim/bezier3_player/bezier3_palyer.dart +++ b/lib/painter_system/anim/bezier3_player/bezier3_palyer.dart @@ -9,6 +9,8 @@ import 'touch_info.dart'; /// 说明: class Bezier3Player extends StatefulWidget { + const Bezier3Player({Key? key}) : super(key: key); + @override _Bezier3PlayerState createState() => _Bezier3PlayerState(); } @@ -112,7 +114,7 @@ class PaperPainter extends CustomPainter { } void _drawHelp(Canvas canvas) { - _helpPaint..color = Colors.purple; + _helpPaint.color = Colors.purple; canvas.drawPoints(PointMode.polygon, pos, _helpPaint..strokeWidth = 1); canvas.drawPoints(PointMode.points, pos, _helpPaint..strokeWidth = 8); } diff --git a/lib/painter_system/anim/circle_halo.dart b/lib/painter_system/anim/circle_halo.dart index 08ed0fd..6109f46 100644 --- a/lib/painter_system/anim/circle_halo.dart +++ b/lib/painter_system/anim/circle_halo.dart @@ -19,7 +19,7 @@ class _CircleHaloState extends State super.initState(); _ctrl = AnimationController( vsync: this, - duration: Duration(seconds: 2), + duration: const Duration(seconds: 2), ); _ctrl.repeat(); @@ -34,7 +34,7 @@ class _CircleHaloState extends State @override Widget build(BuildContext context) { return CustomPaint( - size: Size(200, 200), + size: const Size(200, 200), painter: CircleHaloPainter(_ctrl), ); } @@ -69,14 +69,14 @@ class CircleHaloPainter extends CustomPainter { ..style = PaintingStyle.stroke; Path circlePath = Path() - ..addOval(Rect.fromCenter(center: Offset(0, 0), width: 100, height: 100)); + ..addOval(Rect.fromCenter(center: const Offset(0, 0), width: 100, height: 100)); Path circlePath2 = Path() ..addOval( - Rect.fromCenter(center: Offset(-1, 0), width: 100, height: 100)); + Rect.fromCenter(center: const Offset(-1, 0), width: 100, height: 100)); Path result = Path.combine(PathOperation.difference, circlePath, circlePath2); - List colors = [ + List colors = const[ Color(0xFFF60C0C), Color(0xFFF3B913), Color(0xFFE7F716), @@ -100,7 +100,7 @@ class CircleHaloPainter extends CustomPainter { canvas.rotate(animation.value * 2 * pi); paint ..style = PaintingStyle.fill - ..color = Color(0xff00abf2); + ..color = const Color(0xff00abf2); paint.shader=null; canvas.drawPath(result, paint); canvas.restore(); diff --git a/lib/painter_system/anim/curve_shower/anim_painter.dart b/lib/painter_system/anim/curve_shower/anim_painter.dart index f0c7084..c59d170 100644 --- a/lib/painter_system/anim/curve_shower/anim_painter.dart +++ b/lib/painter_system/anim/curve_shower/anim_painter.dart @@ -32,7 +32,7 @@ class AnimPainter extends CustomPainter { fps_60.moveTo(3.0 * 60, 0); fps_60.relativeLineTo(0, -size.height); canvas.drawPath(fps_60, fpsPaint); - textPainter.text = TextSpan( + textPainter.text = const TextSpan( text: '60 帧', style: TextStyle(fontSize: 12, color: Colors.green)); textPainter.layout(); // 进行布局 textPainter.paint(canvas, Offset(3.0 * 61 + 5, -size.height)); @@ -54,12 +54,12 @@ class AnimPainter extends CustomPainter { axisPath.relativeLineTo(4, 10); canvas.drawPath(axisPath, axisPaint); - textPainter.text = TextSpan( + textPainter.text = const TextSpan( text: '帧数/f', style: TextStyle(fontSize: 12, color: Colors.black)); textPainter.layout(); // 进行布局 Size textSize = textPainter.size; // 尺寸必须在布局后获取 textPainter.paint(canvas, Offset(size.width - textSize.width, 5)); - textPainter.text = TextSpan( + textPainter.text = const TextSpan( text: '数值/y', style: TextStyle(fontSize: 12, color: Colors.black)); textPainter.layout(); // 进行布局 Size textSize2 = textPainter.size; // 尺寸必须在布局后获取 @@ -84,7 +84,7 @@ class AnimPainter extends CustomPainter { textPainter.text = TextSpan( text: '${i / 10}', - style: TextStyle(fontSize: 12, color: Colors.black)); + style: const TextStyle(fontSize: 12, color: Colors.black)); textPainter.layout(); // 进行布局 Size textSize = textPainter.size; // 尺寸必须在布局后获取 diff --git a/lib/painter_system/anim/curve_shower/curve_anim_shower.dart b/lib/painter_system/anim/curve_shower/curve_anim_shower.dart index ded0064..5016d91 100644 --- a/lib/painter_system/anim/curve_shower/curve_anim_shower.dart +++ b/lib/painter_system/anim/curve_shower/curve_anim_shower.dart @@ -5,7 +5,7 @@ import 'anim_painter.dart'; import 'point_data.dart'; class CurveAnimShower extends StatefulWidget { - const CurveAnimShower(); + const CurveAnimShower({Key? key}) : super(key: key); @override _CurveAnimShowerState createState() => _CurveAnimShowerState(); @@ -107,7 +107,7 @@ class _CurveAnimShowerState extends State iconSize: 20, height: 25, width: 180, - disableColor: Color(0xff1F425F), + disableColor: const Color(0xff1F425F), onDropSelected: (int index) async { curveAnim = CurvedAnimation( parent: _ctrl, curve: maps.values.toList()[index]); diff --git a/lib/painter_system/anim/draw_path.dart b/lib/painter_system/anim/draw_path.dart index 7c6c2a7..7cf0a56 100644 --- a/lib/painter_system/anim/draw_path.dart +++ b/lib/painter_system/anim/draw_path.dart @@ -9,6 +9,8 @@ import 'package:flutter/material.dart'; /// 说明: class DrawPath extends StatefulWidget { + const DrawPath({Key? key}) : super(key: key); + @override _DrawPathState createState() => _DrawPathState(); } @@ -80,7 +82,7 @@ class PaperPainter extends CustomPainter { ..strokeWidth = 1.5 ..style = PaintingStyle.stroke; - var colors = [ + List colors = const [ Color(0xFFF60C0C), Color(0xFFF3B913), Color(0xFFE7F716), @@ -92,13 +94,17 @@ class PaperPainter extends CustomPainter { var pos = [1.0 / 7, 2.0 / 7, 3.0 / 7, 4.0 / 7, 5.0 / 7, 6.0 / 7, 1.0]; paint.shader = ui.Gradient.linear( - Offset(0, 0), Offset(100, 0), colors, pos, TileMode.mirror); + const Offset(0, 0), + const Offset(100, 0), + colors, + pos, + TileMode.mirror, + ); Offset p1 = points[0]; - path.reset(); - path..moveTo(p1.dx, p1.dy); + path.moveTo(p1.dx, p1.dy); for (var i = 1; i < points.length - 1; i++) { double xc = (points[i].dx + points[i + 1].dx) / 2; @@ -110,12 +116,12 @@ class PaperPainter extends CustomPainter { PathMetrics pms = path.computeMetrics(); - pms.forEach((pm) { + for (PathMetric pm in pms) { Tangent? tangent = pm.getTangentForOffset(pm.length * repaint.value); canvas.drawPath(pm.extractPath(0, pm.length * repaint.value), paint); canvas.drawCircle( tangent?.position??Offset.zero, 5, Paint()..color = Colors.blue); - }); + } } @override diff --git a/lib/painter_system/anim/dundun_path.dart b/lib/painter_system/anim/dundun_path.dart index cd59d1c..41b5fdc 100644 --- a/lib/painter_system/anim/dundun_path.dart +++ b/lib/painter_system/anim/dundun_path.dart @@ -78,7 +78,7 @@ class DunDunPainter extends CustomPainter { if (logo2Image!=null) { Rect src2 = Rect.fromLTWH( 0, 0, logo2Image!.width.toDouble(), logo2Image!.height.toDouble()); - Rect dst2 = Rect.fromLTWH(85, 132, 899/27, 1066/27); + Rect dst2 = const Rect.fromLTWH(85, 132, 899/27, 1066/27); canvas.drawImageRect(logo2Image!, src2, dst2, Paint()); } @@ -96,28 +96,28 @@ class DunDunPainter extends CustomPainter { Matrix4.rotationZ(45 / 180 * pi) ); eyePath - .addOval(Rect.fromCenter(center: Offset(0, 0), width: 32, height: 49)); + .addOval(Rect.fromCenter(center: const Offset(0, 0), width: 32, height: 49)); eyePath = eyePath.transform(m.storage); canvas.restore(); Path leftEyePath = Path(); - leftEyePath.addOval(Rect.fromCenter(center: Offset(50, -13), width: 18, height: 18)); + leftEyePath.addOval(Rect.fromCenter(center: const Offset(50, -13), width: 18, height: 18)); Path leftEyePath2 = Path(); - leftEyePath2.addOval(Rect.fromCenter(center: Offset(50, -13), width: 7, height: 7)); + leftEyePath2.addOval(Rect.fromCenter(center: const Offset(50, -13), width: 7, height: 7)); Path leftEyePath3 = Path(); - leftEyePath3.addOval(Rect.fromCenter(center: Offset(51, -19), width: 4, height: 4)); + leftEyePath3.addOval(Rect.fromCenter(center: const Offset(51, -19), width: 4, height: 4)); Path rightEyePath = Path(); - rightEyePath.addOval(Rect.fromCenter(center: Offset(98, -14), width: 17, height: 17)); + rightEyePath.addOval(Rect.fromCenter(center: const Offset(98, -14), width: 17, height: 17)); Path rightEyePath2 = Path(); - rightEyePath2.addOval(Rect.fromCenter(center: Offset(98, -14), width: 7, height: 7)); + rightEyePath2.addOval(Rect.fromCenter(center: const Offset(98, -14), width: 7, height: 7)); Path rightEyePath3 = Path(); - rightEyePath3.addOval(Rect.fromCenter(center: Offset(98, -19), width: 4, height: 4)); + rightEyePath3.addOval(Rect.fromCenter(center: const Offset(98, -19), width: 4, height: 4)); Path nosePath = Path(); nosePath.moveTo(79, -0,); @@ -125,7 +125,7 @@ class DunDunPainter extends CustomPainter { nosePath.relativeLineTo(-28, 0,); nosePath.close(); Path clipCirclePath =Path(); - clipCirclePath.addOval(Rect.fromCenter(center: Offset(79, -10,), width: 14, height: 14)); + clipCirclePath.addOval(Rect.fromCenter(center: const Offset(79, -10,), width: 14, height: 14)); nosePath = Path.combine(PathOperation.intersect, nosePath, clipCirclePath); Path smaliPath = Path(); smaliPath.moveTo(65, -0,); @@ -134,11 +134,11 @@ class DunDunPainter extends CustomPainter { smaliPath.quadraticBezierTo(78, 6, 65, 0,); Path colorfulPath = Path(); - colorfulPath.addOval(Rect.fromCenter(center: Offset(72, -5,), width: 120, height: 110)); - colorfulPath.addOval(Rect.fromCenter(center: Offset(72, -5,), width: 110, height: 100)); - colorfulPath.addOval(Rect.fromCenter(center: Offset(72, -5,), width: 115, height: 110)); - colorfulPath.addOval(Rect.fromCenter(center: Offset(72, -5,), width: 120, height: 105)); - colorfulPath.addOval(Rect.fromCenter(center: Offset(72, -5,), width: 115, height: 105)); + colorfulPath.addOval(Rect.fromCenter(center: const Offset(72, -5,), width: 120, height: 110)); + colorfulPath.addOval(Rect.fromCenter(center: const Offset(72, -5,), width: 110, height: 100)); + colorfulPath.addOval(Rect.fromCenter(center: const Offset(72, -5,), width: 115, height: 110)); + colorfulPath.addOval(Rect.fromCenter(center: const Offset(72, -5,), width: 120, height: 105)); + colorfulPath.addOval(Rect.fromCenter(center: const Offset(72, -5,), width: 115, height: 105)); canvas.save(); Path eyePath2 = Path(); @@ -146,7 +146,7 @@ class DunDunPainter extends CustomPainter { Matrix4.rotationZ(-40 / 180 * pi) ); eyePath2 - .addOval(Rect.fromCenter(center: Offset(0, 0), width: 29, height: 48)); + .addOval(Rect.fromCenter(center: const Offset(0, 0), width: 29, height: 48)); eyePath2 = eyePath2.transform(m2.storage); canvas.restore(); Path leftFootPath = buildFootPath(); @@ -172,7 +172,7 @@ class DunDunPainter extends CustomPainter { for (int i = 0; i < len; i++) { starPath.lineTo(arr[i].dx, arr[i].dy); } - starPath = starPath.shift(Offset(152,-20)); + starPath = starPath.shift(const Offset(152,-20)); dundunPath.addPath(bodyPath, Offset.zero); dundunPath.addPath(leftHandPath, Offset.zero); @@ -196,9 +196,9 @@ class DunDunPainter extends CustomPainter { ..strokeWidth = 1 ..color = Colors.cyanAccent; PathMetrics pms = dundunPath.computeMetrics(); - pms.forEach((pm) { + for (PathMetric pm in pms) { canvas.drawPath(pm.extractPath(0, pm.length * repaint.value), pathPaint); - }); + } } Path buildBodyPath() { diff --git a/lib/painter_system/anim/spring_widget.dart b/lib/painter_system/anim/spring_widget.dart index d580f1f..95e318d 100644 --- a/lib/painter_system/anim/spring_widget.dart +++ b/lib/painter_system/anim/spring_widget.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; class SpringWidget extends StatefulWidget { - const SpringWidget(); + const SpringWidget({Key? key}) : super(key: key); @override _SpringWidgetState createState() => _SpringWidgetState(); diff --git a/lib/painter_system/art/circle_packing.dart b/lib/painter_system/art/circle_packing.dart index 46d824b..3349465 100644 --- a/lib/painter_system/art/circle_packing.dart +++ b/lib/painter_system/art/circle_packing.dart @@ -4,12 +4,14 @@ import 'package:flutter/material.dart'; import '../utils/colors.dart'; class Circle { - Point center = Point(0,0); + Point center = const Point(0,0); double radius = 10; Color color = Colors.black; } class CirclePacking extends StatefulWidget { + const CirclePacking({Key? key}) : super(key: key); + @override _CirclePackingState createState() => _CirclePackingState(); } diff --git a/lib/painter_system/art/cubic_disarray.dart b/lib/painter_system/art/cubic_disarray.dart index 915abdd..71c5ccf 100644 --- a/lib/painter_system/art/cubic_disarray.dart +++ b/lib/painter_system/art/cubic_disarray.dart @@ -3,6 +3,8 @@ import 'dart:math'; import 'package:flutter/widgets.dart'; class CubicDisarray extends StatefulWidget { + const CubicDisarray({Key? key}) : super(key: key); + @override _CubicDisarrayState createState() => _CubicDisarrayState(); } diff --git a/lib/painter_system/art/hypnotic_squares.dart b/lib/painter_system/art/hypnotic_squares.dart index 013f8f8..1b72f53 100644 --- a/lib/painter_system/art/hypnotic_squares.dart +++ b/lib/painter_system/art/hypnotic_squares.dart @@ -5,6 +5,8 @@ import 'package:flutter/material.dart'; import '../utils/colors.dart'; class HypnoticSquares extends StatefulWidget { + const HypnoticSquares({Key? key}) : super(key: key); + @override _HypnoticSquaresState createState() => _HypnoticSquaresState(); } diff --git a/lib/painter_system/art/joy_division.dart b/lib/painter_system/art/joy_division.dart index fd6724a..2843f2a 100644 --- a/lib/painter_system/art/joy_division.dart +++ b/lib/painter_system/art/joy_division.dart @@ -3,6 +3,8 @@ import 'dart:math'; import 'package:flutter/material.dart'; class JoyDivision extends StatefulWidget { + const JoyDivision({Key? key}) : super(key: key); + @override _JoyDivisionState createState() => _JoyDivisionState(); } diff --git a/lib/painter_system/art/piet_mondrian.dart b/lib/painter_system/art/piet_mondrian.dart index cc704f0..20093e5 100644 --- a/lib/painter_system/art/piet_mondrian.dart +++ b/lib/painter_system/art/piet_mondrian.dart @@ -5,6 +5,8 @@ import 'package:flutter/material.dart'; import '../utils/colors.dart'; class PietMondrian extends StatefulWidget { + const PietMondrian({Key? key}) : super(key: key); + @override _PietMondrianState createState() => _PietMondrianState(); } diff --git a/lib/painter_system/art/tiled_lines.dart b/lib/painter_system/art/tiled_lines.dart index 6b6d166..ddb47f2 100644 --- a/lib/painter_system/art/tiled_lines.dart +++ b/lib/painter_system/art/tiled_lines.dart @@ -2,6 +2,8 @@ import 'dart:math'; import 'package:flutter/material.dart'; class TiledLines extends StatefulWidget { + const TiledLines({Key? key}) : super(key: key); + @override _TiledLinesState createState() => _TiledLinesState(); } @@ -64,5 +66,6 @@ class TiledLinesPainter extends CustomPainter { } } + @override bool shouldRepaint(TiledLinesPainter oldDelegate) => true; } diff --git a/lib/painter_system/art/triangular_mesh.dart b/lib/painter_system/art/triangular_mesh.dart index e215a64..4cde0bb 100644 --- a/lib/painter_system/art/triangular_mesh.dart +++ b/lib/painter_system/art/triangular_mesh.dart @@ -9,6 +9,8 @@ class Point { } class TriangularMesh extends StatefulWidget { + const TriangularMesh({Key? key}) : super(key: key); + @override _TriangularMeshState createState() => _TriangularMeshState(); } diff --git a/lib/painter_system/art/un_deux_trois.dart b/lib/painter_system/art/un_deux_trois.dart index 9695e6a..d2611a0 100644 --- a/lib/painter_system/art/un_deux_trois.dart +++ b/lib/painter_system/art/un_deux_trois.dart @@ -3,6 +3,8 @@ import 'dart:math'; import 'package:flutter/material.dart'; class UnDeuxTrois extends StatefulWidget { + const UnDeuxTrois({Key? key}) : super(key: key); + @override _UnDeuxTroisState createState() => _UnDeuxTroisState(); } diff --git a/lib/painter_system/base/clock_widget.dart b/lib/painter_system/base/clock_widget.dart index a55ca37..dddbb8c 100644 --- a/lib/painter_system/base/clock_widget.dart +++ b/lib/painter_system/base/clock_widget.dart @@ -100,7 +100,7 @@ class ClockBgPainter extends CustomPainter { final Path circlePath = Path() ..addArc( Rect.fromCenter( - center: Offset(0, 0), width: radius * 2, height: radius * 2), + center: const Offset(0, 0), width: radius * 2, height: radius * 2), 10 / 180 * pi, pi / 2 - 20 / 180 * pi); @@ -278,7 +278,7 @@ class ClockPainter extends CustomPainter { void drawHour(Canvas canvas) { _paint ..strokeWidth = hourLineWidth - ..color = Color(0xff8FC552) + ..color = const Color(0xff8FC552) ..strokeCap = StrokeCap.round; canvas.drawLine(Offset.zero, Offset(hourLen, 0), _paint); } @@ -286,7 +286,7 @@ class ClockPainter extends CustomPainter { void drawMinus(Canvas canvas) { _paint ..strokeWidth = minusLineWidth - ..color = Color(0xff87B953) + ..color = const Color(0xff87B953) ..strokeCap = StrokeCap.round; canvas.drawLine( @@ -301,7 +301,7 @@ class ClockPainter extends CustomPainter { void drawSecond(Canvas canvas) { _paint ..strokeWidth = logic1 * 2.5 - ..color = Color(0xff6B6B6B) + ..color = const Color(0xff6B6B6B) ..strokeCap = StrokeCap.square ..style = PaintingStyle.stroke; Path path = Path(); @@ -316,7 +316,7 @@ class ClockPainter extends CustomPainter { canvas.drawPath(path, _paint); canvas.restore(); - _paint..strokeCap = StrokeCap.round; + _paint.strokeCap = StrokeCap.round; canvas.drawLine(Offset(-logic1 * 9, 0), Offset(-logic1 * 20, 0), _paint); _paint diff --git a/lib/painter_system/base/draw_grid_axis.dart b/lib/painter_system/base/draw_grid_axis.dart index a423eb8..b4bd2e4 100644 --- a/lib/painter_system/base/draw_grid_axis.dart +++ b/lib/painter_system/base/draw_grid_axis.dart @@ -7,6 +7,8 @@ import '../utils/coordinate.dart'; /// 说明: class DrawGridAxis extends StatelessWidget { + const DrawGridAxis({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { double size = MediaQuery.of(context).size.shortestSide; diff --git a/lib/painter_system/base/draw_path_fun.dart b/lib/painter_system/base/draw_path_fun.dart index 18291f7..40827bf 100644 --- a/lib/painter_system/base/draw_path_fun.dart +++ b/lib/painter_system/base/draw_path_fun.dart @@ -8,6 +8,8 @@ import 'dart:ui' as ui; /// 说明: class DrawPathFun extends StatelessWidget { + const DrawPathFun({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { double size = MediaQuery.of(context).size.shortestSide; @@ -30,7 +32,7 @@ class PaperPainter extends CustomPainter { final double step = 6; final double min = -240; final double max = 240; - final List colors = [ + final List colors = const[ Color(0xFFF60C0C), Color(0xFFF3B913), Color(0xFFE7F716), @@ -74,7 +76,7 @@ class PaperPainter extends CustomPainter { var pos = [1.0 / 7, 2.0 / 7, 3.0 / 7, 4.0 / 7, 5.0 / 7, 6.0 / 7, 1.0]; paint.shader = ui.Gradient.linear( - Offset(0, 0), Offset(100, 0), colors, pos, TileMode.mirror); + const Offset(0, 0), const Offset(100, 0), colors, pos, TileMode.mirror); Offset p1 = points[0]; Path path = Path()..moveTo(p1.dx, p1.dy); diff --git a/lib/painter_system/base/draw_picture.dart b/lib/painter_system/base/draw_picture.dart index abb98d3..e051914 100644 --- a/lib/painter_system/base/draw_picture.dart +++ b/lib/painter_system/base/draw_picture.dart @@ -11,6 +11,8 @@ import 'package:flutter/services.dart'; /// 说明: class DrawPicture extends StatefulWidget { + const DrawPicture({Key? key}) : super(key: key); + @override _DrawPictureState createState() => _DrawPictureState(); } @@ -65,7 +67,7 @@ class PaperPainter extends CustomPainter { } void _drawLine(Size size, Canvas canvas) { - _paint..color = const Color(0xFFF0F0F0); + _paint.color = const Color(0xFFF0F0F0); double step = 10.0; for (int i = 1; i <= size.height / step; i++) { canvas.drawLine(Offset(step * i, 0), Offset(0, step * i), _paint); diff --git a/lib/painter_system/fun/dundun_view.dart b/lib/painter_system/fun/dundun_view.dart index 34d3951..28759c6 100644 --- a/lib/painter_system/fun/dundun_view.dart +++ b/lib/painter_system/fun/dundun_view.dart @@ -1,5 +1,6 @@ import 'dart:math'; import 'dart:ui' as ui; + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -70,7 +71,7 @@ class DunDunPainter extends CustomPainter { canvas.drawPath(rightHandPath, pathPaint); pathPaint.style = PaintingStyle.fill; - pathPaint.color = Color(0xffF1F4F7); + pathPaint.color = const Color(0xffF1F4F7); Path bodyPath = buildBodyPath(); canvas.drawPath(bodyPath, pathPaint); @@ -80,7 +81,7 @@ class DunDunPainter extends CustomPainter { Matrix4 m = Matrix4.translationValues(46, -12, 0) .multiplied(Matrix4.rotationZ(45 / 180 * pi)); eyePath - .addOval(Rect.fromCenter(center: Offset(0, 0), width: 32, height: 49)); + .addOval(Rect.fromCenter(center: const Offset(0, 0), width: 32, height: 49)); eyePath = eyePath.transform(m.storage); pathPaint.color = Colors.black; canvas.drawPath(eyePath, pathPaint); @@ -93,7 +94,7 @@ class DunDunPainter extends CustomPainter { nosePath.close(); Path clipCirclePath = Path(); clipCirclePath.addOval( - Rect.fromCenter(center: Offset(79, -10), width: 12, height: 12)); + Rect.fromCenter(center: const Offset(79, -10), width: 12, height: 12)); nosePath = Path.combine(PathOperation.intersect, nosePath, clipCirclePath); pathPaint.style = PaintingStyle.fill; @@ -115,7 +116,7 @@ class DunDunPainter extends CustomPainter { ..color = Colors.black); Paint colorfulPaint = Paint()..style = PaintingStyle.stroke; - List colors = [ + List colors = const [ Color(0xFFF60C0C), Color(0xFFF3B913), Color(0xFFE7F716), @@ -127,22 +128,22 @@ class DunDunPainter extends CustomPainter { final List pos = List.generate(colors.length, (index) => index / colors.length); colorfulPaint.shader = ui.Gradient.sweep( - Offset(60, -5), colors, pos, TileMode.clamp, 0, 2 * pi); - colorfulPaint.maskFilter = MaskFilter.blur(BlurStyle.solid, 2); + const Offset(60, -5), colors, pos, TileMode.clamp, 0, 2 * pi); + colorfulPaint.maskFilter = const MaskFilter.blur(BlurStyle.solid, 2); Path colorfulPath = Path(); colorfulPath.addOval( - Rect.fromCenter(center: Offset(72, -5), width: 120, height: 110)); + Rect.fromCenter(center: const Offset(72, -5), width: 120, height: 110)); colorfulPath.addOval( - Rect.fromCenter(center: Offset(72, -5), width: 110, height: 100)); + Rect.fromCenter(center: const Offset(72, -5), width: 110, height: 100)); colorfulPath.addOval( - Rect.fromCenter(center: Offset(72, -5), width: 115, height: 110)); + Rect.fromCenter(center: const Offset(72, -5), width: 115, height: 110)); colorfulPath.addOval( - Rect.fromCenter(center: Offset(72, -5), width: 120, height: 105)); + Rect.fromCenter(center: const Offset(72, -5), width: 120, height: 105)); colorfulPath.addOval( - Rect.fromCenter(center: Offset(72, -5), width: 115, height: 105)); + Rect.fromCenter(center: const Offset(72, -5), width: 115, height: 105)); colorfulPath.addOval( - Rect.fromCenter(center: Offset(72, -5), width: 117, height: 103)); + Rect.fromCenter(center: const Offset(72, -5), width: 117, height: 103)); canvas.drawPath(colorfulPath, colorfulPaint); canvas.save(); @@ -150,7 +151,7 @@ class DunDunPainter extends CustomPainter { Matrix4 m2 = Matrix4.translationValues(105, -12, 0) .multiplied(Matrix4.rotationZ(-40 / 180 * pi)); eyePath2 - .addOval(Rect.fromCenter(center: Offset(0, 0), width: 29, height: 48)); + .addOval(Rect.fromCenter(center: const Offset(0, 0), width: 29, height: 48)); eyePath2 = eyePath2.transform(m2.storage); pathPaint.style = PaintingStyle.fill; pathPaint.color = Colors.black; @@ -159,42 +160,42 @@ class DunDunPainter extends CustomPainter { canvas.restore(); Path rightEyePath = Path(); rightEyePath.addOval( - Rect.fromCenter(center: Offset(98, -14), width: 17, height: 17)); + Rect.fromCenter(center: const Offset(98, -14), width: 17, height: 17)); pathPaint.style = PaintingStyle.stroke; pathPaint.color = Colors.white; canvas.drawPath(rightEyePath, pathPaint..strokeWidth = 2); Path rightEyePath2 = Path(); rightEyePath2 - .addOval(Rect.fromCenter(center: Offset(98, -14), width: 7, height: 7)); + .addOval(Rect.fromCenter(center: const Offset(98, -14), width: 7, height: 7)); pathPaint.style = PaintingStyle.fill; pathPaint.color = Colors.white.withOpacity(0.4); canvas.drawPath(rightEyePath2, pathPaint); Path rightEyePath3 = Path(); rightEyePath3 - .addOval(Rect.fromCenter(center: Offset(98, -19), width: 4, height: 4)); + .addOval(Rect.fromCenter(center: const Offset(98, -19), width: 4, height: 4)); pathPaint.style = PaintingStyle.fill; pathPaint.color = Colors.white; canvas.drawPath(rightEyePath3, pathPaint); Path leftEyePath = Path(); leftEyePath.addOval( - Rect.fromCenter(center: Offset(50, -13), width: 18, height: 18)); + Rect.fromCenter(center: const Offset(50, -13), width: 18, height: 18)); pathPaint.style = PaintingStyle.stroke; pathPaint.color = Colors.white; canvas.drawPath(leftEyePath, pathPaint..strokeWidth = 2); Path leftEyePath2 = Path(); leftEyePath2 - .addOval(Rect.fromCenter(center: Offset(50, -13), width: 7, height: 7)); + .addOval(Rect.fromCenter(center: const Offset(50, -13), width: 7, height: 7)); pathPaint.style = PaintingStyle.fill; pathPaint.color = Colors.white.withOpacity(0.4); canvas.drawPath(leftEyePath2, pathPaint); Path leftEyePath3 = Path(); leftEyePath3 - .addOval(Rect.fromCenter(center: Offset(51, -19), width: 4, height: 4)); + .addOval(Rect.fromCenter(center: const Offset(51, -19), width: 4, height: 4)); pathPaint.style = PaintingStyle.fill; pathPaint.color = Colors.white; canvas.drawPath(leftEyePath3, pathPaint); @@ -225,13 +226,13 @@ class DunDunPainter extends CustomPainter { for (int i = 0; i < len; i++) { starPath.lineTo(arr[i].dx, arr[i].dy); } - pathPaint..color = Colors.red; - starPath = starPath.shift(Offset(152, -20)); + pathPaint.color = Colors.red; + starPath = starPath.shift(const Offset(152, -20)); canvas.drawPath(starPath, pathPaint); if (image != null) { Rect src2 = Rect.fromLTWH( 0, 0, image!.width.toDouble(), image!.height.toDouble()); - Rect dst2 = Rect.fromLTWH(50, 55, 899 / 28, 1066 / 28); + Rect dst2 = const Rect.fromLTWH(50, 55, 899 / 28, 1066 / 28); canvas.drawImageRect(image!, src2, dst2, Paint()); } @@ -250,19 +251,19 @@ class DunDunPainter extends CustomPainter { ..style = PaintingStyle.stroke ..color = Colors.black ..strokeWidth = 3; - outLinePainter.maskFilter = MaskFilter.blur(BlurStyle.outer, 4); + outLinePainter.maskFilter = const MaskFilter.blur(BlurStyle.outer, 4); canvas.drawPath(dundunOutLine, outLinePainter); Path p2 = Path() ..addOval(Rect.fromCenter( - center: Offset( + center: const Offset( 72, -5, ), width: 126, height: 116)); - outLinePainter.maskFilter = MaskFilter.blur(BlurStyle.outer, 4); + outLinePainter.maskFilter = const MaskFilter.blur(BlurStyle.outer, 4); canvas.drawPath( p2, outLinePainter @@ -333,20 +334,20 @@ class DunDunPainter extends CustomPainter { canvas.drawPoints( ui.PointMode.points, [ - Offset(10, -68), - Offset(75, -75), + const Offset(10, -68), + const Offset(75, -75), - Offset(135, -70), - Offset(138, 0), + const Offset(135, -70), + const Offset(138, 0), - Offset(130, 90), - Offset(65, 98), + const Offset(130, 90), + const Offset(65, 98), // Offset(55,98), // Offset(18,78), - Offset(-5, 85), - Offset(0, 0), + const Offset(-5, 85), + const Offset(0, 0), ], helpPaint); } @@ -356,16 +357,16 @@ class DunDunPainter extends CustomPainter { canvas.drawPoints( ui.PointMode.points, [ - Offset( + const Offset( 13, -40, ), - Offset( + const Offset( 40, -68, ), - Offset(40, -55), - Offset( + const Offset(40, -55), + const Offset( 8, -95, ), @@ -385,16 +386,16 @@ class DunDunPainter extends CustomPainter { canvas.drawPoints( ui.PointMode.points, [ - Offset(-0, 0), - Offset(-17, 14), - Offset(-28, 40), - Offset(-32, 58), - Offset(-15, 62), - Offset( + const Offset(-0, 0), + const Offset(-17, 14), + const Offset(-28, 40), + const Offset(-32, 58), + const Offset(-15, 62), + const Offset( 8, 60, ), - Offset(-0, 0), + const Offset(-0, 0), ], helpPaint); } @@ -407,14 +408,14 @@ class DunDunPainter extends CustomPainter { // Offset(10,-68), // Offset(75,-75), // - Offset(140, -48), - Offset(165, -35), + const Offset(140, -48), + const Offset(165, -35), - Offset(180, -17), - Offset(135, 22), + const Offset(180, -17), + const Offset(135, 22), - Offset(125, 17), - Offset(135, -20), + const Offset(125, 17), + const Offset(135, -20), // Offset(55,98), // Offset(18,78), @@ -427,15 +428,15 @@ class DunDunPainter extends CustomPainter { canvas.drawPoints( ui.PointMode.points, [ - Offset( + const Offset( 18, 100, ), - Offset(60, 125), - Offset(18, 78), - Offset(22, 115), - Offset(55, 98), - Offset( + const Offset(60, 125), + const Offset(18, 78), + const Offset(22, 115), + const Offset(55, 98), + const Offset( 40, 80, ), diff --git a/lib/painter_system/fun/random_portrait.dart b/lib/painter_system/fun/random_portrait.dart index 467f392..917387a 100644 --- a/lib/painter_system/fun/random_portrait.dart +++ b/lib/painter_system/fun/random_portrait.dart @@ -18,6 +18,8 @@ class Position { } class RandomPortrait extends StatefulWidget { + const RandomPortrait({Key? key}) : super(key: key); + @override _RandomPortraitState createState() => _RandomPortraitState(); } @@ -80,9 +82,9 @@ class PortraitPainter extends CustomPainter { final double perH = (size.height - pd * 2) / (blockCount); canvas.translate(pd, pd); - positions.forEach((element) { + for (Position element in positions) { _drawBlock(perW, perH, canvas, element); - }); + } } void _drawBlock(double dW, double dH, Canvas canvas, Position position) { diff --git a/lib/painter_system/fun/stemp/stamp_data.dart b/lib/painter_system/fun/stemp/stamp_data.dart index 4e85622..732cb0c 100644 --- a/lib/painter_system/fun/stemp/stamp_data.dart +++ b/lib/painter_system/fun/stemp/stamp_data.dart @@ -116,13 +116,13 @@ class Stamp { double r = radius; double rad = 30 / 180 * pi; - _path!..moveTo(center.dx, center.dy); + _path!.moveTo(center.dx, center.dy); _path!.relativeMoveTo(r * cos(rad), -r * sin(rad)); _path!.relativeLineTo(-2 * r * cos(rad), 0); _path!.relativeLineTo(r * cos(rad), r + r * sin(rad)); _path!.relativeLineTo(r * cos(rad), -(r + r * sin(rad))); - _path!..moveTo(center.dx, center.dy); + _path!.moveTo(center.dx, center.dy); _path!.relativeMoveTo(0, -r); _path!.relativeLineTo(-r * cos(rad), r + r * sin(rad)); _path!.relativeLineTo(2 * r * cos(rad), 0); diff --git a/lib/painter_system/fun/stemp/stamp_paper.dart b/lib/painter_system/fun/stemp/stamp_paper.dart index 18c6643..a9f1ebb 100644 --- a/lib/painter_system/fun/stemp/stamp_paper.dart +++ b/lib/painter_system/fun/stemp/stamp_paper.dart @@ -5,6 +5,8 @@ import 'package:flutter/material.dart'; import 'stamp_data.dart'; class StampPaper extends StatefulWidget { + const StampPaper({Key? key}) : super(key: key); + @override _StampPaperState createState() => _StampPaperState(); } @@ -92,7 +94,7 @@ class _StampPaperState extends State gameState = stamps.checkWin(width / gridCount); if (gameState == GameState.redWin) { - ScaffoldMessenger.of(context).showSnackBar(SnackBar( + ScaffoldMessenger.of(context).showSnackBar(const SnackBar( content: Text("红棋获胜!"), backgroundColor: Colors.red, )); @@ -100,7 +102,7 @@ class _StampPaperState extends State if (gameState == GameState.blueWin) { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text("蓝棋获胜!"), backgroundColor: Colors.blue)); + const SnackBar(content: Text("蓝棋获胜!"), backgroundColor: Colors.blue)); } } @@ -200,7 +202,7 @@ class StampPainter extends CustomPainter { Rect zone = Offset.zero & size; canvas.clipRect(zone); - stamps.stamps.forEach((stamp) { + for (Stamp stamp in stamps.stamps) { double length = size.width / count; int x = stamp.center.dx ~/ (size.width / count); int y = stamp.center.dy ~/ (size.width / count); @@ -217,11 +219,11 @@ class StampPainter extends CustomPainter { ..color = Colors.white); canvas.drawCircle(stamp.center, stamp.radius + strokeWidth * 1.5, _pathPaint..color = stamp.color); - }); + } } @override bool shouldRepaint(covariant StampPainter oldDelegate) { - return this.stamps != oldDelegate.stamps || this.count != oldDelegate.count; + return stamps != oldDelegate.stamps || count != oldDelegate.count; } } diff --git a/lib/painter_system/gallery_detail_page.dart b/lib/painter_system/gallery_detail_page.dart index 94437f2..ee7ac67 100644 --- a/lib/painter_system/gallery_detail_page.dart +++ b/lib/painter_system/gallery_detail_page.dart @@ -11,7 +11,7 @@ class GalleryDetailPage extends StatefulWidget { final GalleryInfo galleryInfo; final List children; - GalleryDetailPage({Key? key,required this.galleryInfo, this.children = const []}) + const GalleryDetailPage({Key? key,required this.galleryInfo, this.children = const []}) : super(key: key); @override @@ -105,7 +105,7 @@ class _GalleryDetailPageState extends State { buildTitle(context), Expanded( child: Row( - children: [_buildPrevBtn(), Spacer(), _buildNextBtn()], + children: [_buildPrevBtn(), const Spacer(), _buildNextBtn()], ), ) ], @@ -128,7 +128,7 @@ class _GalleryDetailPageState extends State { width: 35, height: 35, decoration: BoxDecoration(color: btnColor, shape: BoxShape.circle), - child: Icon(Icons.navigate_before, color: Colors.white), + child: const Icon(Icons.navigate_before, color: Colors.white), ), // height: 60, ), @@ -190,7 +190,7 @@ class _GalleryDetailPageState extends State { blurRadius: .5) ]), ), - Spacer(), + const Spacer(), ValueListenableBuilder( valueListenable: _currentIndex, builder: _buildIndicatorText, diff --git a/lib/painter_system/gallery_factory.dart b/lib/painter_system/gallery_factory.dart index 17a7074..0f1f550 100644 --- a/lib/painter_system/gallery_factory.dart +++ b/lib/painter_system/gallery_factory.dart @@ -38,31 +38,31 @@ class GalleryFactory { switch (type) { case GalleryType.base: return [ - FrameShower( + const FrameShower( title: "The Chaos", author: "张风捷特烈", srcUrl: "", info: " 本样例介绍如何进行图片的绘制:通过加载图片并将图片资源绘制到指定的区域。在上层绘制一批 45° 倾角的栅格线,来练习线条的绘制。", content: DrawPicture()), - FrameShower( + const FrameShower( title: "The Coordinate", author: "张风捷特烈", srcUrl: "", info: " 本样例介绍如何使用线路径和文字绘制网格坐标系,并将绘制对象进行封装,方便重用。坐标系也会在绘制时提供参考,入门必备。", content: DrawGridAxis()), - FrameShower( + const FrameShower( title: "曲线拟合", author: "张风捷特烈", info: " 本样例介绍如何使用路径对函数曲线进行绘制,通过函数曲线上的少量点通过贝塞尔曲线进行拟合。", content: DrawPathFun()), - FrameShower( + const FrameShower( title: "随机对称图", author: "张风捷特烈", info: " 本样例介绍绘制矩形及随机数处理。通过点位集合确定矩形位置信息,将其绘制出来。可以练习对数据的控制力。", - content: RandomPortrait()), FrameShower( + content: RandomPortrait()), const FrameShower( title: "简单时钟", author: "张风捷特烈", info: @@ -71,32 +71,32 @@ class GalleryFactory { ]; case GalleryType.anim: return [ - FrameShower( + const FrameShower( title: "手势弹簧", author: "张风捷特烈", info: " 本样例介绍如何绘制弹簧,通过触点竖直拖拽拉伸、压缩,放手时进行恢复动画,是一个很好的综合小案例。", - content: const SpringWidget()), - FrameShower( + content: SpringWidget()), + const FrameShower( title: "动画曲线散点图", author: "张风捷特烈", info: " 本样例通过直观的方式,来查看动画曲线 curve 的作用效果,让大家对动画有更深的理解。", - content: const CurveAnimShower()), - FrameShower( + content: CurveAnimShower()), + const FrameShower( title: "流光", author: "张风捷特烈", info: " 本样例介绍如何在绘制中使用着色器和过滤器,并通过动画进行数值变化达到旋转流光效果。", - content: const CircleHalo()), - FrameShower( + content: CircleHalo()), + const FrameShower( title: "Draw Curve", author: "张风捷特烈", info: " 本样例介绍如何使用路径绘制函数曲线,并使用路径测量进行动画", content: DrawPath()), - FrameShower( + const FrameShower( title: "冰墩墩线条动画", author: "张风捷特烈", info: " 本样例会绘制 2022 年北京冬奥会吉祥物冰墩墩的路径,并使用路径测量进行动画", content: DunDunPathPage()), - FrameShower( + const FrameShower( title: "Bezier3 演示 (双击清除)", author: "张风捷特烈", info: " 本样例介绍如何绘制三次贝塞尔曲线,通过触点判断某点是否激活,据此控制点的位置达到拖动控制效果。", @@ -104,19 +104,19 @@ class GalleryFactory { ]; case GalleryType.particle: return [ - FrameShower( + const FrameShower( title: "随机粒子生成器", author: "张风捷特烈", info: " 本样例介绍如何创建随机粒子及边界反弹逻辑处理,是学习粒子运动非常好的入门案例。", content: RandomParticle()), - FrameShower( + const FrameShower( title: "粒子分裂", author: "张风捷特烈", info: " 本样例介绍如何对个粒子进行碰撞检测,并分裂处多个粒子,是一个比较有趣的案例。", content: ParticleSplit()), - FrameShower( + const FrameShower( title: "图片粒子分裂", author: "张风捷特烈", info: @@ -125,19 +125,19 @@ class GalleryFactory { ]; case GalleryType.fun: return [ - FrameShower( + const FrameShower( title: "Random Portrait", author: "张风捷特烈", info: " 本样例介绍绘制矩形及随机数处理。通过点位集合确定矩形位置信息,将其绘制出来。其中对点的随机生成和对称处理能让你练习对数据的控制力。", content: RandomPortrait()), - FrameShower( + const FrameShower( title: "冰墩墩", author: "张风捷特烈", info: " 本样例是绘制 2022 年北京冬奥会吉祥物冰墩墩的形体,从中可以学到路径绘制、渐变色等知识。", content: DunDunView()), - FrameShower( + const FrameShower( title: "井字棋", author: "张风捷特烈", info: @@ -146,56 +146,56 @@ class GalleryFactory { ]; case GalleryType.art: return [ - FrameShower( + const FrameShower( title: "Tiled Line", author: "generativeartistry.com", info: "本样例根源来自generativeartistry.com的tiled-lines,由xrr2016使用Flutter实现。仓库地址:flutter-generative-artistry", content: TiledLines(), ), - FrameShower( + const FrameShower( title: "Joy Division", author: "generativeartistry.com", info: "本样例根源来自generativeartistry.com的joy-division,由xrr2016使用Flutter实现。仓库地址:flutter-generative-artistry", content: JoyDivision(), ), - FrameShower( + const FrameShower( title: "Cubic Disarray", author: "generativeartistry.com", info: "本样例根源来自generativeartistry.com的cubic-disarray,由xrr2016使用Flutter实现。仓库地址:flutter-generative-artistry", content: CubicDisarray(), ), - FrameShower( + const FrameShower( title: "Triangular Mesh", author: "generativeartistry.com", info: "本样例根源来自generativeartistry.com的triangular-mesh,由xrr2016使用Flutter实现。仓库地址:flutter-generative-artistry", content: TriangularMesh(), ), - FrameShower( + const FrameShower( title: "Un Deux Trois", author: "generativeartistry.com", info: "本样例根源来自generativeartistry.com的un-deux-trois,由xrr2016使用Flutter实现。仓库地址:flutter-generative-artistry", content: UnDeuxTrois(), ), - FrameShower( + const FrameShower( title: "Circle Packing", author: "generativeartistry.com", info: "本样例根源来自generativeartistry.com的circle-packing,由xrr2016使用Flutter实现。仓库地址:flutter-generative-artistry", content: CirclePacking(), ), - FrameShower( + const FrameShower( title: "Hypnotic Squares", author: "generativeartistry.com", info: "本样例根源来自generativeartistry.com的hypnotic-squares,由xrr2016使用Flutter实现。仓库地址:flutter-generative-artistry", content: HypnoticSquares(), ), - FrameShower( + const FrameShower( title: "Piet Mondrian", author: "generativeartistry.com", info: diff --git a/lib/painter_system/gallery_unit.dart b/lib/painter_system/gallery_unit.dart index e5a9047..a0e0954 100644 --- a/lib/painter_system/gallery_unit.dart +++ b/lib/painter_system/gallery_unit.dart @@ -2,12 +2,11 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_unit/app/blocs/color_change_bloc.dart'; import 'package:flutter_unit/app/res/str_unit.dart'; - import 'package:flutter_unit/components/permanent/feedback_widget.dart'; import 'package:flutter_unit/components/project/items/gallery/gallery_card_item.dart'; import 'package:flutter_unit/painter_system/gallery_factory.dart'; -import 'package:flutter_unit/app/blocs/color_change_bloc.dart'; import 'gallery_detail_page.dart'; @@ -16,6 +15,8 @@ import 'gallery_detail_page.dart'; /// 说明: class GalleryUnit extends StatefulWidget { + const GalleryUnit({Key? key}) : super(key: key); + @override _GalleryUnitState createState() => _GalleryUnitState(); } @@ -57,17 +58,17 @@ class _GalleryUnitState extends State { Color get nextColor => BlocProvider.of(context).state.nextTabColor; - BoxDecoration get boxDecoration => BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.only( - topLeft: Radius.circular(40), topRight: Radius.circular(40))); + BoxDecoration get boxDecoration => const BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: Radius.circular(40), topRight: Radius.circular(40)), + ); @override Widget build(BuildContext context) { return Scaffold( body: ValueListenableBuilder( - child: Column( - //使用 child 属性优化 + child: Column( //使用 child 属性优化 children: [ _buildTitle(context), Expanded( @@ -185,7 +186,7 @@ class _GalleryUnitState extends State { } Widget _buildDiver() => Container( - margin: EdgeInsets.only(bottom: 12, left: 48, right: 48, top: 10), + margin: const EdgeInsets.only(bottom: 12, left: 48, right: 48, top: 10), height: 2, child: ValueListenableBuilder( valueListenable: factor, diff --git a/lib/painter_system/particle/out/clock_fx.dart b/lib/painter_system/particle/out/clock_fx.dart index 9c72e5c..77c22bd 100644 --- a/lib/painter_system/particle/out/clock_fx.dart +++ b/lib/painter_system/particle/out/clock_fx.dart @@ -6,19 +6,19 @@ import 'rnd.dart'; import 'particle.dart'; -final easingDelayDuration = Duration(seconds: 10); +const Duration easingDelayDuration = Duration(seconds: 10); /// Probabilities of Hour, Minute, Noise. // final particleDistributions = [2, 4, 100]; /// Number of "arms" to emit noise particles from center. -final int noiseAngles = 2000; +const int noiseAngles = 2000; /// Threshold for particles to go rouge. Lower = more particles. -final rougeDistributionLmt = 85; +const int rougeDistributionLmt = 85; /// Threshold for particles to go jelly. Lower = more particles. -final jellyDistributionLmt = 97; +const int jellyDistributionLmt = 97; class ClockFx with ChangeNotifier { @@ -32,15 +32,13 @@ class ClockFx with ChangeNotifier { List particles=[]; // 所有粒子 int numParticles=0;// 最大粒子数 - - late DateTime time; //时间 + DateTime time; //时间 ClockFx({ required Size size, - required DateTime time, + required this.time, this.numParticles = 5000, }) { - this.time = time; particles = List.filled(numParticles, Particle()); setSize(size); } diff --git a/lib/painter_system/particle/out/clock_widget.dart b/lib/painter_system/particle/out/clock_widget.dart index de73076..025d953 100644 --- a/lib/painter_system/particle/out/clock_widget.dart +++ b/lib/painter_system/particle/out/clock_widget.dart @@ -65,7 +65,7 @@ class ClockFxPainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { - fx.particles.forEach((p) { + for (var p in fx.particles) { double a; a = max(0.0, (p.distFrac - .13) / p.distFrac) * 255; a = min(a, min(noiseAlpha, p.lifeLeft * 3 * 255)); @@ -76,7 +76,7 @@ class ClockFxPainter extends CustomPainter { ..color = p.color.withAlpha(alpha); canvas.drawCircle(Offset(p.x, p.y), p.size, circlePaint); - }); + } } @override diff --git a/lib/painter_system/particle/random/particle_manage.dart b/lib/painter_system/particle/random/particle_manage.dart index 8eb2db9..b8bbfce 100644 --- a/lib/painter_system/particle/random/particle_manage.dart +++ b/lib/painter_system/particle/random/particle_manage.dart @@ -51,9 +51,9 @@ class ParticleManage with ChangeNotifier { } void reset() { - particles.forEach((p) { + for (Particle p in particles) { p.x = 0; - }); + } notifyListeners(); } } diff --git a/lib/painter_system/particle/random/random_particle.dart b/lib/painter_system/particle/random/random_particle.dart index e61fd27..16276a6 100644 --- a/lib/painter_system/particle/random/random_particle.dart +++ b/lib/painter_system/particle/random/random_particle.dart @@ -12,6 +12,8 @@ import 'world_render.dart'; /// 说明: class RandomParticle extends StatefulWidget { + const RandomParticle({Key? key}) : super(key: key); + @override _RandomParticleState createState() => _RandomParticleState(); } @@ -27,7 +29,7 @@ class _RandomParticleState extends State with SingleTickerProvid super.initState(); - _timer =Timer.periodic(Duration(seconds: 1),addParticle); + _timer =Timer.periodic(const Duration(seconds: 1),addParticle); _controller = AnimationController( duration: const Duration(seconds: 1), diff --git a/lib/painter_system/particle/random/world_render.dart b/lib/painter_system/particle/random/world_render.dart index 06bc79a..d2d4545 100644 --- a/lib/painter_system/particle/random/world_render.dart +++ b/lib/painter_system/particle/random/world_render.dart @@ -21,9 +21,9 @@ class WorldRender extends CustomPainter { @override void paint(Canvas canvas, Size size) { - manage.particles.forEach((particle) { + for (Particle particle in manage.particles) { drawParticle(canvas, particle); - }); + } } void drawParticle(Canvas canvas, Particle particle) { diff --git a/lib/painter_system/particle/split/particle_manage.dart b/lib/painter_system/particle/split/particle_manage.dart index 16370a2..77a8ca8 100644 --- a/lib/painter_system/particle/split/particle_manage.dart +++ b/lib/painter_system/particle/split/particle_manage.dart @@ -75,9 +75,9 @@ class ParticleManage with ChangeNotifier { } void reset() { - particles.forEach((p) { + for (Particle p in particles) { p.x = 0; - }); + } notifyListeners(); } diff --git a/lib/painter_system/particle/split/particle_split.dart b/lib/painter_system/particle/split/particle_split.dart index 1b36bbc..6aa5918 100644 --- a/lib/painter_system/particle/split/particle_split.dart +++ b/lib/painter_system/particle/split/particle_split.dart @@ -10,6 +10,8 @@ import 'world_render.dart'; /// 说明: class ParticleSplit extends StatefulWidget { + const ParticleSplit({Key? key}) : super(key: key); + @override _ParticleSplitState createState() => _ParticleSplitState(); } diff --git a/lib/painter_system/particle/split/world_render.dart b/lib/painter_system/particle/split/world_render.dart index 6ac35a9..6c0d437 100644 --- a/lib/painter_system/particle/split/world_render.dart +++ b/lib/painter_system/particle/split/world_render.dart @@ -21,9 +21,9 @@ class WorldRender extends CustomPainter { @override void paint(Canvas canvas, Size size) { - manage.particles.forEach((particle) { + for (Particle particle in manage.particles) { drawParticle(canvas, particle); - }); + } } void drawParticle(Canvas canvas, Particle particle) { diff --git a/lib/painter_system/particle/split_img/particle_manage.dart b/lib/painter_system/particle/split_img/particle_manage.dart index 0315654..2269550 100644 --- a/lib/painter_system/particle/split_img/particle_manage.dart +++ b/lib/painter_system/particle/split_img/particle_manage.dart @@ -63,9 +63,9 @@ class ParticleManage with ChangeNotifier { } void reset() { - particles.forEach((p) { + for (Particle p in particles) { p.x = 0; - }); + } notifyListeners(); } diff --git a/lib/painter_system/particle/split_img/split_image.dart b/lib/painter_system/particle/split_img/split_image.dart index 9f16528..ca9f121 100644 --- a/lib/painter_system/particle/split_img/split_image.dart +++ b/lib/painter_system/particle/split_img/split_image.dart @@ -11,6 +11,8 @@ import 'world_render.dart'; /// 说明: class SplitImage extends StatefulWidget { + const SplitImage({Key? key}) : super(key: key); + @override _SplitImageState createState() => _SplitImageState(); } diff --git a/lib/painter_system/particle/split_img/world_render.dart b/lib/painter_system/particle/split_img/world_render.dart index 675fae8..19c30ad 100644 --- a/lib/painter_system/particle/split_img/world_render.dart +++ b/lib/painter_system/particle/split_img/world_render.dart @@ -21,9 +21,9 @@ class WorldRender extends CustomPainter { @override void paint(Canvas canvas, Size size) { - manage.particles.forEach((particle) { + for (Particle particle in manage.particles) { drawParticle(canvas, particle); - }); + } } void drawParticle(Canvas canvas, Particle particle) { diff --git a/lib/painter_system/picture_frame.dart b/lib/painter_system/picture_frame.dart index c0bc0d3..4008077 100644 --- a/lib/painter_system/picture_frame.dart +++ b/lib/painter_system/picture_frame.dart @@ -11,12 +11,12 @@ class PictureFrame extends StatelessWidget { final EdgeInsetsGeometry? marge; const PictureFrame( - {this.child, + {Key? key, this.child, this.width, this.height, this.alignment, this.color = Colors.transparent, - this.marge}); + this.marge}) : super(key: key); @override Widget build(BuildContext context) { @@ -25,11 +25,11 @@ class PictureFrame extends StatelessWidget { alignment: alignment, width: width ?? size, height: height ?? size, - padding: marge ?? EdgeInsets.all(20), + padding: marge ?? const EdgeInsets.all(20), child: CustomPaint( painter: FramePainter(), child: Container( - margin: EdgeInsets.all(14), + margin: const EdgeInsets.all(14), decoration: BoxDecoration( color: color, border: Border.all( @@ -91,13 +91,13 @@ class FramePainter extends CustomPainter { canvas.drawPoints( PointMode.polygon, [ - Offset(0, 0), - Offset(18, 0), - Offset(0, 18), - Offset(0, 0), + const Offset(0, 0), + const Offset(18, 0), + const Offset(0, 18), + const Offset(0, 0), ], myPaint); - canvas.drawCircle(Offset(8, 8), 3, myPaint..color = Colors.black); + canvas.drawCircle(const Offset(8, 8), 3, myPaint..color = Colors.black); } @override @@ -114,7 +114,7 @@ class FrameShower extends StatelessWidget { final String info; final Widget content; - FrameShower( + const FrameShower( {Key? key, this.title = "", this.author = "", @@ -129,24 +129,24 @@ class FrameShower extends StatelessWidget { alignment: Alignment.topCenter, child: Column( children: [ - SizedBox( + const SizedBox( height: 15, ), Text( title, - style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold), + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold), ), PictureFrame(child: content), Container( - padding: EdgeInsets.symmetric(horizontal: 12), + padding: const EdgeInsets.symmetric(horizontal: 12), child: Row( children: [ Text( "作者: $author ", - style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold), + style: const TextStyle(fontSize: 14, fontWeight: FontWeight.bold), ), - Spacer(), - Text( + const Spacer(), + const Text( "源码地址 ", style: TextStyle( fontSize: 14, @@ -156,15 +156,15 @@ class FrameShower extends StatelessWidget { ], ), ), - SizedBox( + const SizedBox( height: 10, ), Container( - padding: EdgeInsets.symmetric(horizontal: 12), + padding: const EdgeInsets.symmetric(horizontal: 12), alignment: Alignment.topLeft, child: Text( info, - style: TextStyle( + style: const TextStyle( fontSize: 14, color: Colors.grey, fontWeight: FontWeight.bold), diff --git a/lib/painter_system/utils/coordinate.dart b/lib/painter_system/utils/coordinate.dart index aad2371..0bd3597 100644 --- a/lib/painter_system/utils/coordinate.dart +++ b/lib/painter_system/utils/coordinate.dart @@ -40,7 +40,7 @@ class Coordinate { } _drawText(canvas, size); - TextSpan text = TextSpan( + TextSpan text = const TextSpan( text: "x", style: TextStyle( fontSize: 20, @@ -54,7 +54,7 @@ class Coordinate { _textPainter.paint(canvas, Offset(size.width / 2 - 20, -30)); - _textPainter.text = TextSpan( + _textPainter.text = const TextSpan( text: "y", style: TextStyle( fontSize: 20, diff --git a/lib/point_system/api/app_info.dart b/lib/point_system/api/app_info.dart index c143552..c1ed7d6 100644 --- a/lib/point_system/api/app_info.dart +++ b/lib/point_system/api/app_info.dart @@ -39,7 +39,7 @@ class AppInfo extends Equatable{ final String appUrl; final int appSize; - AppInfo({ + const AppInfo({ required this.appName, required this.appVersion, required this.appUrl, diff --git a/lib/point_system/github_model/issue.dart b/lib/point_system/github_model/issue.dart index 1c5283f..b999aab 100644 --- a/lib/point_system/github_model/issue.dart +++ b/lib/point_system/github_model/issue.dart @@ -27,7 +27,7 @@ class Issue extends Equatable { final GithubUser? closeBy; - Issue( + const Issue( this.id, this.number, this.title, diff --git a/lib/point_system/views/issues_point/issue_item.dart b/lib/point_system/views/issues_point/issue_item.dart index 716dcf8..5746da9 100644 --- a/lib/point_system/views/issues_point/issue_item.dart +++ b/lib/point_system/views/issues_point/issue_item.dart @@ -20,7 +20,7 @@ class IssueItem extends StatelessWidget { @override Widget build(BuildContext context) { return Container( - padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5), + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 5), decoration: BoxDecoration( border: Border( bottom: BorderSide( @@ -34,24 +34,24 @@ class IssueItem extends StatelessWidget { padding: const EdgeInsets.only(top: 5.0, bottom: 5.0, left: 10), child: Text( '${issue.title}', - style: TextStyle(fontSize: 15, color: Colors.grey, shadows: [ + style: const TextStyle(fontSize: 15, color: Colors.grey, shadows: [ Shadow(color: Colors.white, offset: Offset(1, .5)) ]), ), ), Row( children: [ - Spacer(), + const Spacer(), WrapColor( color: Colors.greenAccent, child: Text( issue.commentNum.toString(), - style: TextStyle(color: Colors.white), + style: const TextStyle(color: Colors.white), )), - SizedBox( + const SizedBox( width: 5, ), - Icon( + const Icon( TolyIcon.icon_common, size: 20, ), @@ -70,22 +70,22 @@ class IssueItem extends StatelessWidget { size: 40, borderSize: 2, ), - SizedBox( + const SizedBox( width: 10, ), WrapColor( child: Text( "#${issue.number}", - style: TextStyle(color: Colors.white), + style: const TextStyle(color: Colors.white), )), - SizedBox( + const SizedBox( width: 10, ), Text( '${issue.user?.login}', - style: TextStyle(fontWeight: FontWeight.bold), + style: const TextStyle(fontWeight: FontWeight.bold), ), - Spacer(), + const Spacer(), Text(ConvertMan.time2string(issue.createdAt!)), ], ); diff --git a/lib/point_system/views/issues_point/issues_detail.dart b/lib/point_system/views/issues_point/issues_detail.dart index 565bce7..e5c92d9 100644 --- a/lib/point_system/views/issues_point/issues_detail.dart +++ b/lib/point_system/views/issues_point/issues_detail.dart @@ -20,7 +20,7 @@ class IssuesDetailPage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar(title: Text('Flutter Point'),), + appBar: AppBar(title: const Text('Flutter Point'),), body: BlocBuilder( builder: _buildContent), ); @@ -50,7 +50,7 @@ class IssuesDetailPage extends StatelessWidget { class IssueTitle extends StatelessWidget { final Issue issue; - IssueTitle({Key? key,required this.issue}) : super(key: key); + const IssueTitle({Key? key,required this.issue}) : super(key: key); String get issueDesHtml => issue.bodyHtml != null ? issue.bodyHtml! @@ -64,18 +64,18 @@ class IssueTitle extends StatelessWidget { Stack( children: [ Container( - padding: EdgeInsets.symmetric(horizontal: 8), - child: Panel(child: Text('${issue.title}',style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),)), + padding: const EdgeInsets.symmetric(horizontal: 8), + child: Panel(child: Text('${issue.title}',style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold),)), ), Positioned( right: 10, bottom: 10, child: WrapColor( - child: Text('#${issue.number}',style: TextStyle(color: Colors.white),), + child: Text('#${issue.number}',style: const TextStyle(color: Colors.white),), )), ], ), - Divider(), + const Divider(), Padding( padding: const EdgeInsets.symmetric(horizontal: 8.0), @@ -88,10 +88,10 @@ class IssueTitle extends StatelessWidget { subtitle:Row( children: [ Text('创建于:${ConvertMan.time2string(issue.createdAt!)}'), - Spacer(), + const Spacer(), WrapColor( color: Colors.green, - child: Text('更新于:${ConvertMan.time2string(issue.updatedAt!)}',style: TextStyle(color: Colors.white),)), + child: Text('更新于:${ConvertMan.time2string(issue.updatedAt!)}',style: const TextStyle(color: Colors.white),)), ], ) , @@ -104,7 +104,7 @@ class IssueTitle extends StatelessWidget { child: MarkdownWidget( markdownData: issueDesHtml, style: MarkdownWidget.kWhite), ), - Divider(thickness: 2,) + const Divider(thickness: 2,) ], ), ); @@ -114,7 +114,7 @@ class IssueTitle extends StatelessWidget { class IssueCommentWidget extends StatelessWidget { final IssueComment comment; - IssueCommentWidget({Key? key,required this.comment}) : super(key: key); + const IssueCommentWidget({Key? key,required this.comment}) : super(key: key); String get issueDesHtml => comment.bodyHtml != null ? comment.bodyHtml! @@ -135,10 +135,10 @@ class IssueCommentWidget extends StatelessWidget { subtitle:Row( children: [ Text('创建于:${ConvertMan.time2string(comment.createdAt!)}'), - Spacer(), + const Spacer(), WrapColor( color: Colors.green, - child: Text('更新于:${ConvertMan.time2string(comment.updatedAt!)}',style: TextStyle(color: Colors.white),)), + child: Text('更新于:${ConvertMan.time2string(comment.updatedAt!)}',style: const TextStyle(color: Colors.white),)), ], ) , @@ -150,7 +150,7 @@ class IssueCommentWidget extends StatelessWidget { child: MarkdownWidget( markdownData: issueDesHtml, style: MarkdownWidget.kWhite), ), - Divider(thickness: 2,) + const Divider(thickness: 2,) ], ); } diff --git a/lib/point_system/views/issues_point/issues_point_page.dart b/lib/point_system/views/issues_point/issues_point_page.dart index 9dc1c8a..c562f02 100644 --- a/lib/point_system/views/issues_point/issues_point_page.dart +++ b/lib/point_system/views/issues_point/issues_point_page.dart @@ -54,7 +54,7 @@ class _IssuesPointContentState extends State { Widget buildContentByState(PointState state) { if (state is PointLoading) { - return SliverPadding( + return const SliverPadding( padding: EdgeInsets.only(top: 150), sliver: SliverToBoxAdapter( child: Center( @@ -80,7 +80,7 @@ class _IssuesPointContentState extends State { if (state is PointLoadFailure) { return SliverPadding( - padding: EdgeInsets.only(top: 40), + padding: const EdgeInsets.only(top: 40), sliver: SliverToBoxAdapter( child: Center( child: Text(state.error), @@ -88,7 +88,7 @@ class _IssuesPointContentState extends State { ); } - return SliverPadding( + return const SliverPadding( padding: EdgeInsets.zero, ); } @@ -97,13 +97,13 @@ class _IssuesPointContentState extends State { return SliverAppBar( expandedHeight: 210.0, // leading: _buildLeading(), - title: Text('Flutter要点集录'), + title: const Text('Flutter要点集录'), // actions: _buildActions(), elevation: 5, pinned: true, actions: [ IconButton( - icon: Icon( + icon: const Icon( Icons.help_outline, color: Colors.white, ), @@ -114,10 +114,10 @@ class _IssuesPointContentState extends State { backgroundColor: Colors.blue, flexibleSpace: FlexibleSpaceBar( //伸展处布局 - titlePadding: EdgeInsets.only(left: 55, bottom: 15), //标题边距 + titlePadding: const EdgeInsets.only(left: 55, bottom: 15), //标题边距 collapseMode: CollapseMode.parallax, //视差效果 background: _repository == null - ? Center( + ? const Center( child: SpinKitFadingCube( color: Colors.white, ), @@ -131,7 +131,7 @@ class _IssuesPointContentState extends State { Future _loadIssues() async { BlocProvider.of(context).add(EventLoadPoint()); - await Future.delayed(Duration(milliseconds: 200)); + await Future.delayed(const Duration(milliseconds: 200)); } void _loadRepo() async { diff --git a/lib/point_system/views/issues_point/repo_widget.dart b/lib/point_system/views/issues_point/repo_widget.dart index 0ba46e4..a2fd9fe 100644 --- a/lib/point_system/views/issues_point/repo_widget.dart +++ b/lib/point_system/views/issues_point/repo_widget.dart @@ -18,10 +18,10 @@ class RepoWidget extends StatelessWidget { @override Widget build(BuildContext context) { return Container( - margin: EdgeInsets.only(top: 56 + 32.0, bottom: 5), - padding: EdgeInsets.only(top:20,right: 10,left: 10), + margin: const EdgeInsets.only(top: 56 + 32.0, bottom: 5), + padding: const EdgeInsets.only(top:20,right: 10,left: 10), // padding: EdgeInsets.all(10), - decoration: BoxDecoration( + decoration: const BoxDecoration( boxShadow: [ BoxShadow(color: Colors.grey, offset: Offset(0, .5), blurRadius: 3) ], @@ -38,23 +38,23 @@ class RepoWidget extends StatelessWidget { children: [ Text( repository.fullName!, - style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16), + style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 16), ), - SizedBox(width: 10,), + const SizedBox(width: 10,), WrapColor( child: Text( '${repository.license?.type}', - style: TextStyle( + style: const TextStyle( fontWeight: FontWeight.bold, color: Colors.white, fontSize: 12), ), ), - Spacer(), + const Spacer(), Text( "创建:" + ConvertMan.time2string(repository.createdAt!, just: true), - style: TextStyle(color: Colors.grey), + style: const TextStyle(color: Colors.grey), ), ], ), @@ -62,10 +62,10 @@ class RepoWidget extends StatelessWidget { padding: const EdgeInsets.symmetric(vertical: 8.0), child: Text( repository.description!, - style: TextStyle(color: Colors.grey), + style: const TextStyle(color: Colors.grey), ), ), - Divider(), + const Divider(), Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ @@ -73,11 +73,11 @@ class RepoWidget extends StatelessWidget { alignment: WrapAlignment.center, crossAxisAlignment: WrapCrossAlignment.center, children: [ - Icon(Icons.star_border), + const Icon(Icons.star_border), Text(repository.stargazersCount.toString()), ]), - Padding( - padding: const EdgeInsets.symmetric(vertical: 8.0), + const Padding( + padding: EdgeInsets.symmetric(vertical: 8.0), child: Text( "|", style: TextStyle(fontSize: 20, color: Colors.blue), @@ -87,14 +87,14 @@ class RepoWidget extends StatelessWidget { alignment: WrapAlignment.center, crossAxisAlignment: WrapCrossAlignment.center, children: [ - Icon(TolyIcon.icon_show), - SizedBox( + const Icon(TolyIcon.icon_show), + const SizedBox( width: 5, ), Text(repository.subscribersCount.toString()), ]), - Padding( - padding: const EdgeInsets.symmetric(vertical: 8.0), + const Padding( + padding: EdgeInsets.symmetric(vertical: 8.0), child: Text( "|", style: TextStyle(fontSize: 20, color: Colors.blue), @@ -104,11 +104,11 @@ class RepoWidget extends StatelessWidget { alignment: WrapAlignment.center, crossAxisAlignment: WrapCrossAlignment.center, children: [ - Icon(TolyIcon.icon_fork), + const Icon(TolyIcon.icon_fork), Text(repository.forksCount.toString()), ]), - Padding( - padding: const EdgeInsets.symmetric(vertical: 8.0), + const Padding( + padding: EdgeInsets.symmetric(vertical: 8.0), child: Text( "|", style: TextStyle(fontSize: 20, color: Colors.blue), @@ -118,8 +118,8 @@ class RepoWidget extends StatelessWidget { alignment: WrapAlignment.center, crossAxisAlignment: WrapCrossAlignment.center, children: [ - Icon(TolyIcon.icon_issues), - SizedBox( + const Icon(TolyIcon.icon_issues), + const SizedBox( width: 5, ), Text(repository.openIssuesCount.toString()), diff --git a/lib/update_part/bloc/bloc.dart b/lib/update_part/bloc/bloc.dart index fb0f867..1b9e7a7 100644 --- a/lib/update_part/bloc/bloc.dart +++ b/lib/update_part/bloc/bloc.dart @@ -18,7 +18,7 @@ class UpdateBloc extends Bloc { } void _onCheckUpdate(CheckUpdate event, Emitter emit) async { - emit(CheckLoadingState()); + emit(const CheckLoadingState()); // await Future.delayed(Duration(seconds: 1)); // 检测更新逻辑 ResultBean result = @@ -57,7 +57,7 @@ class UpdateBloc extends Bloc { if (info.status! == DownloadStatus.STATUS_SUCCESSFUL) { progress = 1; subscription?.cancel(); - add(ResetNoUpdate()); + add(const ResetNoUpdate()); } add(DownloadingEvent(state: DownloadingState( appSize: event.appInfo.appSize, diff --git a/lib/update_part/views/app_update_panel.dart b/lib/update_part/views/app_update_panel.dart index dfbdb46..8098b93 100644 --- a/lib/update_part/views/app_update_panel.dart +++ b/lib/update_part/views/app_update_panel.dart @@ -6,7 +6,7 @@ import 'package:flutter_unit/app/utils/convert.dart'; import 'package:flutter_unit/bloc_exp.dart'; class AppUpdatePanel extends StatelessWidget { - const AppUpdatePanel(); + const AppUpdatePanel({Key? key}) : super(key: key); @override Widget build(BuildContext context) { @@ -25,14 +25,14 @@ class AppUpdatePanel extends StatelessWidget { children: [ Text( '${(progress * 100).toStringAsFixed(2)} %', - style: TextStyle(height: 1, fontSize: 12, color: Colors.grey), + style: const TextStyle(height: 1, fontSize: 12, color: Colors.grey), ), const SizedBox( height: 5, ), Text( '${Convert.convertFileSize((appSize * progress).floor())}/${Convert.convertFileSize(appSize)}', - style: TextStyle(height: 1, fontSize: 10, color: Colors.grey), + style: const TextStyle(height: 1, fontSize: 10, color: Colors.grey), ), ], ), @@ -62,14 +62,14 @@ class AppUpdatePanel extends StatelessWidget { children: [ Text( '${state.oldVersion} --> ${state.info.appVersion} ', - style: TextStyle(height: 1, fontSize: 12, color: Colors.grey), + style: const TextStyle(height: 1, fontSize: 12, color: Colors.grey), ), const SizedBox(width: 5), const Icon(Icons.update, color: Colors.green) ]); } if (state is CheckLoadingState) { - trail = CupertinoActivityIndicator(); + trail = const CupertinoActivityIndicator(); } if (state is DownloadingState) { info = "新版本下载中..."; @@ -89,7 +89,7 @@ class AppUpdatePanel extends StatelessWidget { void _tapByState(UpdateState state, BuildContext context) { if (state is NoUpdateState) { BlocProvider.of(context) - .add(CheckUpdate(appName: 'FlutterUnit')); + .add(const CheckUpdate(appName: 'FlutterUnit')); } if (state is ShouldUpdateState) { // 处理下载的事件 diff --git a/lib/update_part/views/update_red_point.dart b/lib/update_part/views/update_red_point.dart index dbb8dfb..72a0274 100644 --- a/lib/update_part/views/update_red_point.dart +++ b/lib/update_part/views/update_red_point.dart @@ -11,7 +11,7 @@ class UpdateRedPoint extends StatelessWidget { Widget radPoint = Container( width: 8, height: 8, - decoration: BoxDecoration(color: Colors.red, shape: BoxShape.circle), + decoration: const BoxDecoration(color: Colors.red, shape: BoxShape.circle), ); return BlocBuilder( builder: (BuildContext context, UpdateState state) { diff --git a/lib/user_system/bloc/authentic/event.dart b/lib/user_system/bloc/authentic/event.dart index 2332f4a..f5ebc70 100644 --- a/lib/user_system/bloc/authentic/event.dart +++ b/lib/user_system/bloc/authentic/event.dart @@ -33,10 +33,10 @@ class LoggedOut extends AuthEvent { final bool clearUser; final bool tokenDisable; - LoggedOut({this.clearUser=true,this.tokenDisable=false}); + const LoggedOut({this.clearUser=true,this.tokenDisable=false}); } class TokenDisabled extends AuthEvent { - TokenDisabled(); + const TokenDisabled(); } \ No newline at end of file diff --git a/lib/user_system/bloc/login/bloc.dart b/lib/user_system/bloc/login/bloc.dart index f1c8442..3673b8a 100644 --- a/lib/user_system/bloc/login/bloc.dart +++ b/lib/user_system/bloc/login/bloc.dart @@ -15,14 +15,14 @@ import 'state.dart'; class LoginBloc extends Bloc { final AuthenticBloc authenticBloc; - LoginBloc({ required this.authenticBloc}) : super(LoginNone()){ + LoginBloc({ required this.authenticBloc}) : super(const LoginNone()){ on(_onLoginEvent); } void _onLoginEvent(LoginEvent event,Emitter emit) async { if (event is DoLogin) { emit (LoginLoading()); - await Future.delayed(Duration(milliseconds: 500)); + await Future.delayed(const Duration(milliseconds: 500)); ResultBean result = await UserApi.login(username: event.username, password: event.password); if (result.status&& result.data!=null) { @@ -30,7 +30,7 @@ class LoginBloc extends Bloc { authenticBloc.add(LoginOver(token: result.msg,user: result.data!)); emit (LoginSuccess(result.data!)); } else { - emit (LoginError('用户名和密码不匹配')); + emit (const LoginError('用户名和密码不匹配')); } } } diff --git a/lib/user_system/bloc/login/event.dart b/lib/user_system/bloc/login/event.dart index b0321dd..c884196 100644 --- a/lib/user_system/bloc/login/event.dart +++ b/lib/user_system/bloc/login/event.dart @@ -16,5 +16,5 @@ class DoLogin extends LoginEvent { final String username; final String password; - DoLogin({required this.username,required this.password}); + const DoLogin({required this.username,required this.password}); } diff --git a/lib/user_system/bloc/register/bloc.dart b/lib/user_system/bloc/register/bloc.dart index 26fd146..9ca2f92 100644 --- a/lib/user_system/bloc/register/bloc.dart +++ b/lib/user_system/bloc/register/bloc.dart @@ -22,7 +22,7 @@ class RegisterBloc extends Bloc { await UserApi.register(email: event.email, code: event.code); if(result.data == null){ - emit(RegisterError('注册失败')); + emit(const RegisterError('注册失败')); }else{ if (result.data!=null&&result.data!) { // 注册成功 diff --git a/lib/user_system/bloc/register/event.dart b/lib/user_system/bloc/register/event.dart index fdc1c17..00ce882 100644 --- a/lib/user_system/bloc/register/event.dart +++ b/lib/user_system/bloc/register/event.dart @@ -16,5 +16,5 @@ class DoRegister extends RegisterEvent { final String email; final String code; - DoRegister(this.email, this.code); + const DoRegister(this.email, this.code); } diff --git a/lib/user_system/model/user.dart b/lib/user_system/model/user.dart index 6bcdfce..a5fefb5 100644 --- a/lib/user_system/model/user.dart +++ b/lib/user_system/model/user.dart @@ -37,11 +37,11 @@ class User extends Equatable{ List get props => [username,email,roles,userId,userAvatar]; Map toJson() => { - "username": this.username, - "email": this.email, - "roles": this.roles, - "userId": this.userId, - "userAvatar": this.userAvatar, + "username": username, + "email": email, + "roles": roles, + "userId": userId, + "userAvatar": userAvatar, }; } diff --git a/lib/user_system/pages/login/login_form.dart b/lib/user_system/pages/login/login_form.dart index 93ce521..49ba8e3 100644 --- a/lib/user_system/pages/login/login_form.dart +++ b/lib/user_system/pages/login/login_form.dart @@ -27,23 +27,23 @@ class _LoginFromState extends State { return Column( mainAxisSize: MainAxisSize.min, children: [ - Text( + const Text( "FlutterUnit 登录", style: TextStyle(fontSize: 25), ), - SizedBox( + const SizedBox( height: 5, ), - Text( + const Text( "更多精彩,更多体验 ~", style: TextStyle(color: Colors.grey), ), - SizedBox( + const SizedBox( height: 20, ), buildUsernameInput(), Stack( - alignment: Alignment(.8, 0), + alignment: const Alignment(.8, 0), children: [ buildPasswordInput(), FeedbackWidget( @@ -54,16 +54,16 @@ class _LoginFromState extends State { Row( children: [ Checkbox(value: true, onChanged: (e) => {}), - Text( + const Text( "自动登录", style: TextStyle(color: Color(0xff444444), fontSize: 14), ), - Spacer(), + const Spacer(), FeedbackWidget( onEnd: () { Navigator.of(context).pushReplacementNamed(UnitRouter.register); }, - child: Text( + child: const Text( "用户注册", style: TextStyle( color: Colors.blue, @@ -108,7 +108,7 @@ class _LoginFromState extends State { margin: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 10.0), child: Row( children: [ - Padding( + const Padding( padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 15.0), child: Icon( Icons.person_outline, @@ -124,7 +124,7 @@ class _LoginFromState extends State { Expanded( child: TextField( controller: _usernameController, - decoration: InputDecoration( + decoration: const InputDecoration( border: InputBorder.none, hintText: '请输入用户名...', hintStyle: TextStyle(color: Colors.grey), @@ -152,7 +152,7 @@ class _LoginFromState extends State { margin: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 10.0), child: Row( children: [ - Padding( + const Padding( padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 15.0), child: Icon( Icons.lock_outline, @@ -169,7 +169,7 @@ class _LoginFromState extends State { child: TextField( obscureText: !_showPwd, controller: _passwordController, - decoration: InputDecoration( + decoration: const InputDecoration( border: InputBorder.none, hintText: '请输入密码...', hintStyle: TextStyle(color: Colors.grey), @@ -190,13 +190,13 @@ class _LoginFromState extends State { Padding( padding: const EdgeInsets.only(top: 30.0), child: Row( - children: [ + children: const [ Expanded( child: Divider( height: 20, )), Padding( - padding: const EdgeInsets.all(8.0), + padding: EdgeInsets.all(8.0), child: Text( '第三方登录', style: TextStyle(color: Colors.grey), @@ -209,7 +209,7 @@ class _LoginFromState extends State { ], ), ), - Icon( + const Icon( TolyIcon.icon_github, color: Colors.black, size: 30, @@ -221,29 +221,29 @@ class _LoginFromState extends State { Widget _buildBtnByState(BuildContext context, LoginState state) { if(state is LoginLoading){ return Container( - margin: EdgeInsets.only(top: 10, bottom: 0), + margin: const EdgeInsets.only(top: 10, bottom: 0), height: 40, width: 40, child: RaisedButton( elevation: 0, - shape: RoundedRectangleBorder( + shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(20))), color: Colors.blue.withOpacity(0.4), onPressed: _doLogIn, - child: CupertinoActivityIndicator(), + child: const CupertinoActivityIndicator(), )); } return Container( - margin: EdgeInsets.only(top: 10, left: 10, right: 10, bottom: 0), + margin: const EdgeInsets.only(top: 10, left: 10, right: 10, bottom: 0), height: 40, width: MediaQuery.of(context).size.width, child: RaisedButton( elevation: 0, - shape: RoundedRectangleBorder( + shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(20))), color: Colors.blue, onPressed: _doLogIn, - child: Text("进入 Unit 世界", + child: const Text("进入 Unit 世界", style: TextStyle(color: Colors.white, fontSize: 18)), )); } @@ -254,14 +254,14 @@ class _LoginFromState extends State { } if (state is LoginError) { Toast.toast(context, '登录失败 : ${state.message}!', - color: Colors.red, duration: Duration(seconds: 2)); + color: Colors.red, duration: const Duration(seconds: 2)); } } bool _preValidate(String username, String password) { if (username.isEmpty || password.isEmpty) { Toast.toast(context, '登录失败 : 用户名和密码不能为空!', - color: Colors.orange, duration: Duration(seconds: 2)); + color: Colors.orange, duration: const Duration(seconds: 2)); return false; } return true; diff --git a/lib/user_system/pages/login/login_page.dart b/lib/user_system/pages/login/login_page.dart index 22d0a54..b2f6727 100644 --- a/lib/user_system/pages/login/login_page.dart +++ b/lib/user_system/pages/login/login_page.dart @@ -19,7 +19,7 @@ class LoginPage extends StatelessWidget { child: Wrap(children: [ Stack(children: [ UnitArcBackground(height: winSize.height * 0.32), - Positioned( + const Positioned( top: 20, child: BackButton(color: Colors.white)), ]), @@ -30,7 +30,7 @@ class LoginPage extends StatelessWidget { padding: const EdgeInsets.only(left: 20.0, right: 20, top: 20), child: Stack( alignment: Alignment.center, - children: [ + children: const [ LoginFrom(), ], )) diff --git a/lib/user_system/pages/register/arc_clipper.dart b/lib/user_system/pages/register/arc_clipper.dart index 393964d..b092b9b 100644 --- a/lib/user_system/pages/register/arc_clipper.dart +++ b/lib/user_system/pages/register/arc_clipper.dart @@ -60,12 +60,12 @@ class UnitArcBackground extends StatelessWidget { return SizedBox( height: height, child: ArcBackground( - image: AssetImage("assets/images/caver.webp"), + image: const AssetImage("assets/images/caver.webp"), child: Container( padding: const EdgeInsets.all(30), decoration: BoxDecoration( color: Colors.blue.withAlpha(88), shape: BoxShape.circle), - child: CircleImage( + child: const CircleImage( size: 100, roundColor: Colors.blue, image: AssetImage( diff --git a/lib/user_system/pages/register/register_page.dart b/lib/user_system/pages/register/register_page.dart index 7e630a6..0290cc2 100644 --- a/lib/user_system/pages/register/register_page.dart +++ b/lib/user_system/pages/register/register_page.dart @@ -56,7 +56,7 @@ class _RegisterPageState extends State { child: Wrap(children: [ Stack(children:[ UnitArcBackground(height: winSize.height * 0.32), - Positioned( + const Positioned( top: 20, child: BackButton(color: Colors.white)), ]), @@ -84,7 +84,7 @@ class _RegisterPageState extends State { icon: Icons.person_outline, textFiled: TextField( controller: _emailCtrl, - decoration: InputDecoration( + decoration: const InputDecoration( border: InputBorder.none, hintText: '请输入邮箱', hintStyle: TextStyle(color: Colors.grey), @@ -104,13 +104,13 @@ class _RegisterPageState extends State { Stack buildInputWithSend() { return Stack( - alignment: Alignment(.8, 0), + alignment: const Alignment(.8, 0), children: [ IconInput( icon: Icons.code_outlined, textFiled: TextField( controller: _codeCtrl, - decoration: InputDecoration( + decoration: const InputDecoration( border: InputBorder.none, hintText: '请输入验证码', hintStyle: TextStyle(color: Colors.grey), @@ -127,7 +127,7 @@ class _RegisterPageState extends State { _sendEmail(BuildContext context) async { if (!_checkEmail(_emailCtrl.text)) { Toast.toast(context, '邮箱格式校验错误,请重试!', - color: Colors.orange, duration: Duration(seconds: 2)); + color: Colors.orange, duration: const Duration(seconds: 2)); return; } @@ -135,10 +135,10 @@ class _RegisterPageState extends State { await SystemApi.sendEmail(email: _emailCtrl.text); print(result); if (result.status) { - Toast.toast(context, '验证码发送成功,请注意邮箱查收!', duration: Duration(seconds: 2)); + Toast.toast(context, '验证码发送成功,请注意邮箱查收!', duration: const Duration(seconds: 2)); } else { Toast.toast(context, '验证码发送失败: ${result.msg}!', - color: Colors.red, duration: Duration(seconds: 2)); + color: Colors.red, duration: const Duration(seconds: 2)); } } @@ -149,7 +149,7 @@ class _RegisterPageState extends State { } Widget _buildBtn() => Container( - margin: EdgeInsets.only(top: 10, left: 10, right: 10, bottom: 0), + margin: const EdgeInsets.only(top: 10, left: 10, right: 10, bottom: 0), height: 40, width: MediaQuery.of(context).size.width, child: BlocConsumer( @@ -173,13 +173,13 @@ class _RegisterPageState extends State { builder: (ctx,bool value,child){ return RaisedButton( elevation: 0, - shape: RoundedRectangleBorder( + shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(20))), color: Colors.blue, disabledColor: Colors.blue.withOpacity(0.6), onPressed: (enable||!value) ? null : _doRegister, child: Text(info, - style: TextStyle(color: Colors.white, fontSize: 18))); + style: const TextStyle(color: Colors.white, fontSize: 18))); }, )); } @@ -187,7 +187,7 @@ class _RegisterPageState extends State { void _listener(BuildContext context, RegisterState state) { if (state is RegisterError) { Toast.toast(context, '注册失败 : ${state.message}!', - color: Colors.red, duration: Duration(seconds: 2)); + color: Colors.red, duration: const Duration(seconds: 2)); } if (state is RegisterSuccess) { diff --git a/lib/user_system/pages/register/send_code.dart b/lib/user_system/pages/register/send_code.dart index 3ae4c2c..59b6566 100644 --- a/lib/user_system/pages/register/send_code.dart +++ b/lib/user_system/pages/register/send_code.dart @@ -9,7 +9,7 @@ import 'package:flutter/material.dart'; class CountDownWidget extends StatefulWidget { final Function(BuildContext context)? onPress; - CountDownWidget({Key? key, this.onPress}) : super(key: key); + const CountDownWidget({Key? key, this.onPress}) : super(key: key); @override _CountDownWidgetState createState() => _CountDownWidgetState(); @@ -37,7 +37,7 @@ class _CountDownWidgetState extends State { onPressed: startTimer ? null : () { - timer = Timer.periodic(Duration(seconds: 1), _update); + timer = Timer.periodic(const Duration(seconds: 1), _update); setState(() { startTimer = true; }); diff --git a/lib/user_system/pages/user/page_item.dart b/lib/user_system/pages/user/page_item.dart index ee30ff2..f33171c 100644 --- a/lib/user_system/pages/user/page_item.dart +++ b/lib/user_system/pages/user/page_item.dart @@ -11,7 +11,7 @@ import 'package:flutter_unit/update_part/views/update_red_point.dart'; class MePageItem extends StatelessWidget { final Color color; - const MePageItem({this.color = Colors.white}); + const MePageItem({Key? key, this.color = Colors.white}) : super(key: key); @override Widget build(BuildContext context) { @@ -24,7 +24,7 @@ class MePageItem extends StatelessWidget { child: ListView( padding: EdgeInsets.zero, children: [ - SizedBox( + const SizedBox( height: 10, ), _buildItem(context, TolyIcon.icon_them, '应用设置', UnitRouter.setting), @@ -32,17 +32,20 @@ class MePageItem extends StatelessWidget { context, TolyIcon.icon_layout, '数据管理', UnitRouter.data_manage), _buildItem( context, TolyIcon.icon_collect, '我的收藏', UnitRouter.collect), - Divider( - height: 1, - ), + const Divider(height: 1), Stack( children: [ - _buildItem(context, Icons.update, '版本信息', UnitRouter.version_info,), - Positioned(left: 40, top: 10, child: UpdateRedPoint()) + _buildItem( + context, + Icons.update, + '版本信息', + UnitRouter.version_info, + ), + const Positioned(left: 40, top: 10, child: UpdateRedPoint()) ], ), _buildItem(context, Icons.info, '关于应用', UnitRouter.about_app), - Divider( + const Divider( height: 1, ), _buildItem(context, TolyIcon.icon_kafei, '联系本王', UnitRouter.about_me), diff --git a/lib/user_system/pages/user/unit_drawer_header.dart b/lib/user_system/pages/user/unit_drawer_header.dart index 552c5d7..72d6177 100644 --- a/lib/user_system/pages/user/unit_drawer_header.dart +++ b/lib/user_system/pages/user/unit_drawer_header.dart @@ -13,8 +13,8 @@ class UnitDrawerHeader extends StatelessWidget { @override Widget build(BuildContext context) { return DrawerHeader( - padding: EdgeInsets.only(top: 10, left: 15), - decoration: BoxDecoration( + padding: const EdgeInsets.only(top: 10, left: 15), + decoration: const BoxDecoration( image: DecorationImage( image: AssetImage('assets/images/login_bg.png'), fit: BoxFit.cover), @@ -25,7 +25,7 @@ class UnitDrawerHeader extends StatelessWidget { Wrap( spacing: 10, crossAxisAlignment: WrapCrossAlignment.center, - children: [ + children: const [ FlutterLogo( // colors: Colors.orange, size: 35, @@ -41,29 +41,29 @@ class UnitDrawerHeader extends StatelessWidget { ), ], ), - SizedBox( + const SizedBox( height: 15, ), Text( 'The Unity Of Flutter, The Unity Of Coder.', style: TextStyle(fontSize: 15, color: Colors.white, shadows: [ - Shadow(color: color, offset: Offset(.5, .5), blurRadius: 1) + Shadow(color: color, offset: const Offset(.5, .5), blurRadius: 1) ]), ), - SizedBox( + const SizedBox( height: 5, ), Text( 'Flutter的联合,编程者的联合。', style: TextStyle(fontSize: 15, color: Colors.white, shadows: [ - Shadow(color: color, offset: Offset(.5, .5), blurRadius: 1) + Shadow(color: color, offset: const Offset(.5, .5), blurRadius: 1) ]), ), - SizedBox( + const SizedBox( height: 10, ), Row( - children: [ + children: const [ Spacer( flex: 5, ), diff --git a/lib/user_system/pages/user/user_page.dart b/lib/user_system/pages/user/user_page.dart index 313cf3c..b04c1c8 100644 --- a/lib/user_system/pages/user/user_page.dart +++ b/lib/user_system/pages/user/user_page.dart @@ -14,6 +14,8 @@ import 'page_item.dart'; /// 说明: class UserPage extends StatelessWidget { + const UserPage({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return Scaffold( @@ -24,7 +26,7 @@ class UserPage extends StatelessWidget { Container( height: 180, width: MediaQuery.of(context).size.width, - margin: EdgeInsets.only(bottom: 40), + margin: const EdgeInsets.only(bottom: 40), child: Image.asset( 'assets/images/sabar_bar.webp', fit: BoxFit.cover, @@ -45,7 +47,7 @@ class UserPage extends StatelessWidget { )) ], ), - Expanded(child: MePageItem()) + const Expanded(child: MePageItem()) ], )); } @@ -77,7 +79,7 @@ class UserPage extends StatelessWidget { size: 80, shadowColor: Theme.of(context).primaryColor.withAlpha(33), // image: NetworkImage(state.user.userAvatar), - image: AssetImage("assets/images/icon_head.webp"), + image: const AssetImage("assets/images/icon_head.webp"), ), ); } @@ -88,7 +90,7 @@ class UserPage extends StatelessWidget { child: CircleImage( size: 80, shadowColor: Theme.of(context).primaryColor.withAlpha(33), - image: AssetImage("assets/images/icon_head.webp"), + image: const AssetImage("assets/images/icon_head.webp"), ), ); } diff --git a/lib/widget_system/blocs/category_bloc/category_state.dart b/lib/widget_system/blocs/category_bloc/category_state.dart index 2fee398..39b5497 100644 --- a/lib/widget_system/blocs/category_bloc/category_state.dart +++ b/lib/widget_system/blocs/category_bloc/category_state.dart @@ -17,6 +17,7 @@ class CategoryLoadedState extends CategoryState { const CategoryLoadedState(this.categories); + @override List get props => [categories]; } @@ -31,6 +32,7 @@ class CategoryLoadingState extends CategoryState { class CategoryEmptyState extends CategoryState { const CategoryEmptyState(); + @override List get props => []; } diff --git a/lib/widget_system/blocs/category_widget_bloc/category_widget_bloc.dart b/lib/widget_system/blocs/category_widget_bloc/category_widget_bloc.dart index 3c1bf77..f44db96 100644 --- a/lib/widget_system/blocs/category_widget_bloc/category_widget_bloc.dart +++ b/lib/widget_system/blocs/category_widget_bloc/category_widget_bloc.dart @@ -29,7 +29,7 @@ class CategoryWidgetBloc widgets.isNotEmpty ? emit(CategoryWidgetLoadedState(widgets)) : emit(CategoryWidgetEmptyState()); - categoryBloc.add(EventLoadCategory()); + categoryBloc.add(const EventLoadCategory()); } void _onEventToggleCategoryWidget(EventToggleCategoryWidget event, Emitter emit) async{ diff --git a/lib/widget_system/blocs/liked_widget_bloc/liked_widget_bloc.dart b/lib/widget_system/blocs/liked_widget_bloc/liked_widget_bloc.dart index 63cd718..9c17839 100644 --- a/lib/widget_system/blocs/liked_widget_bloc/liked_widget_bloc.dart +++ b/lib/widget_system/blocs/liked_widget_bloc/liked_widget_bloc.dart @@ -12,7 +12,7 @@ import 'liked_widget_state.dart'; class LikeWidgetBloc extends Bloc { final WidgetRepository repository; - LikeWidgetBloc({required this.repository}):super(LikeWidgetState(widgets: [])){ + LikeWidgetBloc({required this.repository}):super(const LikeWidgetState(widgets: [])){ on(_onEventLoadLikeData) ; on(_onToggleLikeWidgetEvent) ; } diff --git a/lib/widget_system/blocs/liked_widget_bloc/liked_widget_event.dart b/lib/widget_system/blocs/liked_widget_bloc/liked_widget_event.dart index f5b1d9a..c73512b 100644 --- a/lib/widget_system/blocs/liked_widget_bloc/liked_widget_event.dart +++ b/lib/widget_system/blocs/liked_widget_bloc/liked_widget_event.dart @@ -11,6 +11,7 @@ abstract class LikeWidgetEvent extends Equatable { class EventLoadLikeData extends LikeWidgetEvent { const EventLoadLikeData(); + @override List get props => []; } diff --git a/lib/widget_system/blocs/liked_widget_bloc/liked_widget_state.dart b/lib/widget_system/blocs/liked_widget_bloc/liked_widget_state.dart index 8b171a4..0d958a6 100644 --- a/lib/widget_system/blocs/liked_widget_bloc/liked_widget_state.dart +++ b/lib/widget_system/blocs/liked_widget_bloc/liked_widget_state.dart @@ -8,9 +8,8 @@ import 'package:flutter_unit/widget_system/repositories/model/widget_model.dart' class LikeWidgetState extends Equatable { final List widgets; - LikeWidgetState({required this.widgets}); + const LikeWidgetState({required this.widgets}); @override - // TODO: implement props List get props => [widgets]; } diff --git a/lib/widget_system/blocs/search_bloc/search_bloc.dart b/lib/widget_system/blocs/search_bloc/search_bloc.dart index e493976..85b069e 100644 --- a/lib/widget_system/blocs/search_bloc/search_bloc.dart +++ b/lib/widget_system/blocs/search_bloc/search_bloc.dart @@ -5,7 +5,7 @@ import 'package:flutter_unit/widget_system/repositories/repositories.dart'; import 'search_event.dart'; import 'search_state.dart'; -const _duration = const Duration(milliseconds: 300); +const Duration _duration = Duration(milliseconds: 300); EventTransformer debounce(Duration duration) { return (events, mapper) => events.debounce(duration).switchMap(mapper); diff --git a/lib/widget_system/blocs/widgets_bloc/widgets_bloc.dart b/lib/widget_system/blocs/widgets_bloc/widgets_bloc.dart index c873595..074d2ee 100644 --- a/lib/widget_system/blocs/widgets_bloc/widgets_bloc.dart +++ b/lib/widget_system/blocs/widgets_bloc/widgets_bloc.dart @@ -14,12 +14,12 @@ import 'widgets_state.dart'; class WidgetsBloc extends Bloc { final WidgetRepository repository; - WidgetsBloc({required this.repository}):super(WidgetsLoading()){ + WidgetsBloc({required this.repository}):super(const WidgetsLoading()){ on(_onEventTabTap); } void _onEventTabTap(EventTabTap event, Emitter emit) async{ - emit( WidgetsLoading()); + emit( const WidgetsLoading()); try { final List widgets = await repository.loadWidgets(event.family); emit( WidgetsLoaded(widgets: widgets)); diff --git a/lib/widget_system/repositories/bean/category_po.dart b/lib/widget_system/repositories/bean/category_po.dart index 1d36154..2f14322 100644 --- a/lib/widget_system/repositories/bean/category_po.dart +++ b/lib/widget_system/repositories/bean/category_po.dart @@ -66,15 +66,15 @@ class CategoryPo extends Equatable { } Map toJson() => { - "id": this.id, - "name": this.name, - "info": this.info, - "created": this.created?.millisecondsSinceEpoch, - "updated": this.updated.millisecondsSinceEpoch, - "image": this.image, - "count": this.count, - "color": this.color, - "priority": this.priority, + "id": id, + "name": name, + "info": info, + "created": created?.millisecondsSinceEpoch, + "updated": updated.millisecondsSinceEpoch, + "image": image, + "count": count, + "color": color, + "priority": priority, }; @override diff --git a/lib/widget_system/repositories/bean/widget_po.dart b/lib/widget_system/repositories/bean/widget_po.dart index 29e2021..e37f6c1 100644 --- a/lib/widget_system/repositories/bean/widget_po.dart +++ b/lib/widget_system/repositories/bean/widget_po.dart @@ -40,14 +40,14 @@ class WidgetPo extends Equatable { Map toJson() { return { - "id": this.id, - "name": this.name, - "nameCN": this.nameCN, - "family": this.family, - "deprecated": this.deprecated, - "lever": this.lever, - "linkWidget": this.linkWidget, - "info": this.info + "id": id, + "name": name, + "nameCN": nameCN, + "family": family, + "deprecated": deprecated, + "lever": lever, + "linkWidget": linkWidget, + "info": info }; } diff --git a/lib/widget_system/repositories/model/category_model.dart b/lib/widget_system/repositories/model/category_model.dart index 7302bc9..6f17c20 100644 --- a/lib/widget_system/repositories/model/category_model.dart +++ b/lib/widget_system/repositories/model/category_model.dart @@ -18,7 +18,7 @@ class CategoryModel extends Equatable { final int? count; final Color color; - CategoryModel( + const CategoryModel( {required this.name, required this.id, required this.info, @@ -68,8 +68,8 @@ class CategoryTo{ CategoryTo({required this.model,required this.widgetIds, this.likesData}); Map toJson() => { - "model": this.model, - "widgetIds": this.widgetIds, - "likesData":this.likesData + "model": model, + "widgetIds": widgetIds, + "likesData":likesData }; } \ No newline at end of file diff --git a/lib/widget_system/views/category_view/category_detail.dart b/lib/widget_system/views/category_view/category_detail.dart index 582ff76..36d40ff 100644 --- a/lib/widget_system/views/category_view/category_detail.dart +++ b/lib/widget_system/views/category_view/category_detail.dart @@ -20,7 +20,7 @@ import 'package:flutter_unit/widget_system/blocs/widget_system_bloc.dart'; class CategoryShow extends StatelessWidget { final CategoryModel model; - CategoryShow({required this.model}); + const CategoryShow({Key? key, required this.model}) : super(key: key); @override Widget build(BuildContext context) { @@ -43,7 +43,7 @@ class CategoryShow extends StatelessWidget { direction: DismissDirection.endToStart, key: ValueKey(widgets[index].id), background: Container( - padding: EdgeInsets.only(right: 20), + padding: const EdgeInsets.only(right: 20), alignment: Alignment.centerRight, color: Colors.red, child: const Icon( @@ -57,9 +57,9 @@ class CategoryShow extends StatelessWidget { EventToggleCategoryWidget(model.id!, widgets[index].id)); }, child: Container( - margin: EdgeInsets.symmetric(horizontal: 15, vertical: 8), + margin: const EdgeInsets.symmetric(horizontal: 15, vertical: 8), child: FeedbackWidget( - duration: Duration(milliseconds: 200), + duration: const Duration(milliseconds: 200), onPressed: () => _toDetailPage(context, widgets[index]), child: // Container(height: 60,) @@ -80,7 +80,7 @@ class CategoryShow extends StatelessWidget { class SimpleWidgetItem extends StatelessWidget { final WidgetModel data; - SimpleWidgetItem({required this.data}); + const SimpleWidgetItem({Key? key, required this.data}) : super(key: key); @override Widget build(BuildContext context) { diff --git a/lib/widget_system/views/category_view/category_page.dart b/lib/widget_system/views/category_view/category_page.dart index dfdf62f..69428ee 100644 --- a/lib/widget_system/views/category_view/category_page.dart +++ b/lib/widget_system/views/category_view/category_page.dart @@ -22,6 +22,8 @@ class CategoryPage extends StatelessWidget { childAspectRatio: 0.8, ); + const CategoryPage({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return BlocBuilder(builder: (ctx, state) { @@ -32,8 +34,8 @@ class CategoryPage extends StatelessWidget { handle: NestedScrollView.sliverOverlapAbsorberHandleFor(ctx), ), _buildContent(context, state), - SliverToBoxAdapter( - child: const NoMoreWidget(), + const SliverToBoxAdapter( + child: NoMoreWidget(), ) ], ); @@ -72,7 +74,7 @@ class CategoryPage extends StatelessWidget { builder: (ctx) => Dialog( elevation: 5, shape: rRectBorder, - child: Container( + child: SizedBox( width: 50, child: DeleteCategoryDialog( title: '删除收藏集', @@ -91,7 +93,7 @@ class CategoryPage extends StatelessWidget { showDialog( context: context, builder: (ctx) => Dialog( - backgroundColor: Color(0xFFF2F2F2), + backgroundColor: const Color(0xFFF2F2F2), elevation: 5, shape: rRectBorder, child: Column( diff --git a/lib/widget_system/views/category_view/collect_page.dart b/lib/widget_system/views/category_view/collect_page.dart index 7188e8a..4206af2 100644 --- a/lib/widget_system/views/category_view/collect_page.dart +++ b/lib/widget_system/views/category_view/collect_page.dart @@ -11,6 +11,8 @@ import 'sync/async_button.dart'; import 'sync/upload_button.dart'; class CollectPage extends StatefulWidget { + const CollectPage({Key? key}) : super(key: key); + @override _CollectPageState createState() => _CollectPageState(); } @@ -41,8 +43,8 @@ class _CollectPageState extends State context), sliver: _buildAppBar(_topContext, innerBoxIsScrolled)), ], - body: TabBarView( - children: [ + body: const TabBarView( + children: [ CategoryPage(), LikeWidgetPage(), ], @@ -57,7 +59,7 @@ class _CollectPageState extends State return SliverAppBar( leading: Container( - margin: EdgeInsets.all(10), + margin: const EdgeInsets.all(10), child: FeedbackWidget( onPressed: () { // Navigator.of(context).pushNamed(UnitRouter.login); @@ -71,11 +73,11 @@ class _CollectPageState extends State actions: [ SizedBox( width: 32, - child: AuthenticWidget.just(UploadCategoryButton())), + child: AuthenticWidget.just(const UploadCategoryButton())), // SizedBox(width: 5,), SizedBox( width: 32, - child: AuthenticWidget.just(SyncCategoryButton())), + child: AuthenticWidget.just(const SyncCategoryButton())), _buildAddAction(context) ], title: const Text( @@ -84,7 +86,7 @@ class _CollectPageState extends State color: Colors.white, //标题 fontSize: 18, shadows: [ - Shadow(color: Colors.blue, offset:const Offset(1, 1), blurRadius: 2) + Shadow(color: Colors.blue, offset:Offset(1, 1), blurRadius: 2) ]), ), pinned: true, diff --git a/lib/widget_system/views/category_view/edit_category_panel.dart b/lib/widget_system/views/category_view/edit_category_panel.dart index 802703b..8f4436f 100644 --- a/lib/widget_system/views/category_view/edit_category_panel.dart +++ b/lib/widget_system/views/category_view/edit_category_panel.dart @@ -18,7 +18,7 @@ class EditCategoryPanel extends StatefulWidget { final CategoryModel? model; final EditType type; - const EditCategoryPanel({this.model, this.type = EditType.add}); + const EditCategoryPanel({Key? key, this.model, this.type = EditType.add}) : super(key: key); @override _EditCategoryPanelState createState() => _EditCategoryPanelState(); diff --git a/lib/widget_system/views/category_view/empty_category.dart b/lib/widget_system/views/category_view/empty_category.dart index f9c87ec..fe45ee4 100644 --- a/lib/widget_system/views/category_view/empty_category.dart +++ b/lib/widget_system/views/category_view/empty_category.dart @@ -34,12 +34,12 @@ class EmptyCategory extends StatelessWidget { " 您还没有收藏集! ", style: TextStyle(fontSize: 18,color: ColorUnit.head_text_color), ), - SizedBox( + const SizedBox( width: 10, ), FeedbackWidget( onPressed: ()=>_recallDatabase(context), - child: Icon( + child: const Icon( Icons.refresh, textDirection: TextDirection.rtl, color: Colors.blue, @@ -62,6 +62,6 @@ class EmptyCategory extends StatelessWidget { List bytes = data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes); await File(dbPath).writeAsBytes(bytes, flush: true); - BlocProvider.of(context).add(EventLoadCategory()); + BlocProvider.of(context).add(const EventLoadCategory()); } } diff --git a/lib/widget_system/views/category_view/like_widget_page.dart b/lib/widget_system/views/category_view/like_widget_page.dart index 82a1da3..b9ac8a4 100644 --- a/lib/widget_system/views/category_view/like_widget_page.dart +++ b/lib/widget_system/views/category_view/like_widget_page.dart @@ -15,6 +15,7 @@ import '../widget_system_view.dart'; /// 说明: class LikeWidgetPage extends StatelessWidget { + const LikeWidgetPage({Key? key}) : super(key: key); final SliverGridDelegate gridDelegate = const SliverGridDelegateWithFixedCrossAxisCount( @@ -24,6 +25,7 @@ class LikeWidgetPage extends StatelessWidget { childAspectRatio: 1 / 0.5, ); + @override Widget build(BuildContext context) { return BlocBuilder(builder: (ctx, state) { diff --git a/lib/widget_system/views/category_view/sync/async_button.dart b/lib/widget_system/views/category_view/sync/async_button.dart index 57f82ef..f723f6c 100644 --- a/lib/widget_system/views/category_view/sync/async_button.dart +++ b/lib/widget_system/views/category_view/sync/async_button.dart @@ -19,6 +19,8 @@ import 'package:flutter_unit/components/permanent/feedback_widget.dart'; /// 说明: 同步数据按钮,点击时请求服务器,获取备份数据。 class SyncCategoryButton extends StatefulWidget { + const SyncCategoryButton({Key? key}) : super(key: key); + @override _SyncCategoryButtonState createState() => _SyncCategoryButtonState(); } @@ -79,8 +81,8 @@ class _SyncCategoryButtonState extends State { //说明有后台备份数据,进行同步操作 CategoryRepository repository = BlocProvider.of(context).repository; await repository.syncCategoryByData(result.data!.data,result.data!.likeData); - BlocProvider.of(context).add(EventLoadCategory()); - BlocProvider.of(context).add(EventLoadLikeData()); + BlocProvider.of(context).add(const EventLoadCategory()); + BlocProvider.of(context).add(const EventLoadLikeData()); } else { // 说明还没有后台数据, // 这里防止有傻孩子没点备份,就点同步,哥哥好心,给备份一下。 diff --git a/lib/widget_system/views/category_view/sync/upload_button.dart b/lib/widget_system/views/category_view/sync/upload_button.dart index 6e406f6..d7d0e70 100644 --- a/lib/widget_system/views/category_view/sync/upload_button.dart +++ b/lib/widget_system/views/category_view/sync/upload_button.dart @@ -19,6 +19,8 @@ import 'package:flutter_unit/widget_system/repositories/repositories.dart'; /// 说明: class UploadCategoryButton extends StatefulWidget { + const UploadCategoryButton({Key? key}) : super(key: key); + @override _UploadCategoryButtonState createState() => _UploadCategoryButtonState(); } diff --git a/lib/widget_system/views/search_view/app_search_bar.dart b/lib/widget_system/views/search_view/app_search_bar.dart index 5743a15..bcd5ca8 100644 --- a/lib/widget_system/views/search_view/app_search_bar.dart +++ b/lib/widget_system/views/search_view/app_search_bar.dart @@ -17,14 +17,14 @@ class _AppSearchBarState extends State { final TextEditingController _controller=TextEditingController();//文本控制器 @override - Widget build(BuildContext context) => Container( + Widget build(BuildContext context) => SizedBox( height: 35, child: TextField( autofocus: false, //自动聚焦,闪游标 controller: _controller, maxLines: 1, - decoration: InputDecoration(//输入框装饰 + decoration: const InputDecoration(//输入框装饰 filled: true,//填满 fillColor: Colors.white,//白色 prefixIcon: Icon(Icons.search),//前标 diff --git a/lib/widget_system/views/search_view/error_page.dart b/lib/widget_system/views/search_view/error_page.dart index 494479f..49c2b00 100644 --- a/lib/widget_system/views/search_view/error_page.dart +++ b/lib/widget_system/views/search_view/error_page.dart @@ -15,7 +15,7 @@ class ErrorPage extends StatelessWidget { children: [ Icon(Icons.error_outline, color: Colors.red[300], size: 120.0), Container( - padding: EdgeInsets.only(top: 16.0), + padding: const EdgeInsets.only(top: 16.0), child: Text( "好像有些小错误,ε=(#>д<)ノ", style: TextStyle( diff --git a/lib/widget_system/views/search_view/not_search_page.dart b/lib/widget_system/views/search_view/not_search_page.dart index f4cfd38..3ab5114 100644 --- a/lib/widget_system/views/search_view/not_search_page.dart +++ b/lib/widget_system/views/search_view/not_search_page.dart @@ -13,10 +13,10 @@ class NotSearchPage extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ - Icon(Icons.search, color: Colors.blue, size: 120.0), + const Icon(Icons.search, color: Colors.blue, size: 120.0), Container( - padding: EdgeInsets.only(top: 16.0), - child: Text( + padding: const EdgeInsets.only(top: 16.0), + child: const Text( "哥们,搜点啥...≧◔◡◔≦", style: TextStyle( fontSize: 20, diff --git a/lib/widget_system/views/search_view/search_page.dart b/lib/widget_system/views/search_view/search_page.dart index db757af..35ae542 100644 --- a/lib/widget_system/views/search_view/search_page.dart +++ b/lib/widget_system/views/search_view/search_page.dart @@ -19,6 +19,8 @@ import 'package:flutter_unit/widget_system/blocs/widget_system_bloc.dart'; class SearchPage extends StatefulWidget { + const SearchPage({Key? key}) : super(key: key); + @override _SearchPageState createState() => _SearchPageState(); } @@ -30,7 +32,7 @@ class _SearchPageState extends State { body: WillPopScope( onWillPop: () async { //返回时 情空搜索 - BlocProvider.of(context).add(SearchWidgetEvent(args: SearchArgs())); + BlocProvider.of(context).add(const SearchWidgetEvent(args: SearchArgs())); return true; }, child: CustomScrollView( @@ -45,12 +47,12 @@ class _SearchPageState extends State { } Widget _buildSliverAppBar() { - return SliverAppBar( + return const SliverAppBar( pinned: true, title: AppSearchBar(), actions: [ Padding( - padding: const EdgeInsets.only(right: 15.0), + padding: EdgeInsets.only(right: 15.0), child: Icon(TolyIcon.icon_sound), ) ], @@ -66,7 +68,7 @@ class _SearchPageState extends State { spacing: 5, crossAxisAlignment: WrapCrossAlignment.center, children: [ - Circle( + const Circle( radius: 5, color: Colors.orange, ), @@ -80,7 +82,7 @@ class _SearchPageState extends State { ), ), MultiChipFilter( - data: [1, 2, 3, 4, 5], + data: const [1, 2, 3, 4, 5], avatarBuilder: (_, index) => CircleAvatar(child: Text((index + 1).toString())), labelBuilder: (_, selected) => Icon( @@ -90,18 +92,18 @@ class _SearchPageState extends State { ), onChange: _doSelectStart, ), - Divider(), - SizedBox(height: 10,) + const Divider(), + const SizedBox(height: 10,) ], ); Widget _buildBodyByState(BuildContext context,SearchState state) { - if (state is SearchStateNoSearch) return SliverToBoxAdapter(child: const NotSearchPage(),); - if (state is SearchStateLoading) return SliverToBoxAdapter(child: LoadingShower()); - if (state is SearchStateError) return SliverToBoxAdapter(child: ErrorPage()); + if (state is SearchStateNoSearch) return const SliverToBoxAdapter(child: NotSearchPage(),); + if (state is SearchStateLoading) return const SliverToBoxAdapter(child: LoadingShower()); + if (state is SearchStateError) return const SliverToBoxAdapter(child: ErrorPage()); if (state is SearchStateSuccess) return _buildSliverList(state.result); - if (state is SearchStateEmpty) return SliverToBoxAdapter(child: EmptyShower(message: "没数据,哥也没办法\n(≡ _ ≡)/~┴┴",)); - return NotSearchPage(); + if (state is SearchStateEmpty) return const SliverToBoxAdapter(child: EmptyShower(message: "没数据,哥也没办法\n(≡ _ ≡)/~┴┴",)); + return const NotSearchPage(); } Widget _buildSliverList(List models) => SliverList( diff --git a/lib/widget_system/views/widget_detail_view/category_end_drawer.dart b/lib/widget_system/views/widget_detail_view/category_end_drawer.dart index 4de2e08..a59172e 100644 --- a/lib/widget_system/views/widget_detail_view/category_end_drawer.dart +++ b/lib/widget_system/views/widget_detail_view/category_end_drawer.dart @@ -18,7 +18,7 @@ import 'package:flutter_unit/components/project/unit_drawer_header.dart'; class CategoryEndDrawer extends StatelessWidget { final WidgetModel widget; - const CategoryEndDrawer({required this.widget}); + const CategoryEndDrawer({Key? key, required this.widget}) : super(key: key); @override Widget build(BuildContext context) { @@ -45,9 +45,9 @@ class CategoryEndDrawer extends StatelessWidget { child: Text(widget.info, style: TStyleUnit.shadowTextStyle), ), ), - Divider(), + const Divider(), _buildTitle(context), - Divider(), + const Divider(), CategoryInfo(widget.id) ]), ); @@ -87,7 +87,7 @@ class CategoryEndDrawer extends StatelessWidget { class CategoryInfo extends StatefulWidget { final int id; - CategoryInfo(this.id); + const CategoryInfo(this.id, {Key? key}) : super(key: key); @override _CategoryInfoState createState() => _CategoryInfoState(); diff --git a/lib/widget_system/views/widget_detail_view/widget_detail_page.dart b/lib/widget_system/views/widget_detail_view/widget_detail_page.dart index 2ec403b..e9c2a94 100644 --- a/lib/widget_system/views/widget_detail_view/widget_detail_page.dart +++ b/lib/widget_system/views/widget_detail_view/widget_detail_page.dart @@ -19,7 +19,7 @@ import 'category_end_drawer.dart'; class WidgetDetailPage extends StatefulWidget { final WidgetModel model; - WidgetDetailPage({required this.model}); + const WidgetDetailPage({Key? key, required this.model}) : super(key: key); @override _WidgetDetailPageState createState() => _WidgetDetailPageState(); @@ -43,7 +43,7 @@ class _WidgetDetailPageState extends State { endDrawer: CategoryEndDrawer(widget: _modelStack.last), appBar: AppBar( title: Text(_modelStack.last.name), - leading: BackButton(), + leading: const BackButton(), actions: [ _buildToHome(), FeedbackWidget( @@ -155,17 +155,17 @@ class _WidgetDetailPageState extends State { if (state is DetailWithData) { return Column( crossAxisAlignment: CrossAxisAlignment.start, - children: [ + children: [ Row( - children: [ - const Padding( + children: const[ + Padding( padding: EdgeInsets.only(left: 15, right: 5), child: Icon( Icons.link, color: Colors.blue, ), ), - const Text( + Text( '相关组件', style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16), ), @@ -186,11 +186,11 @@ class _WidgetDetailPageState extends State { _buildLinkTo(BuildContext context, List links) { if (links.isEmpty) { return Padding( - padding: EdgeInsets.only(left: 10), + padding: const EdgeInsets.only(left: 10), child: Chip( backgroundColor: Colors.grey.withAlpha(120), - labelStyle: TextStyle(fontSize: 12, color: Colors.white), - label: Text('暂无链接组件'), + labelStyle: const TextStyle(fontSize: 12, color: Colors.white), + label: const Text('暂无链接组件'), )); } else { return Padding( @@ -253,7 +253,7 @@ class WidgetDetailTitle extends StatelessWidget { fontSize: 20, decoration: (model.deprecated)?TextDecoration.lineThrough:TextDecoration.none, decorationThickness: 2, - color: Color(0xff1EBBFD), + color: const Color(0xff1EBBFD), fontWeight: FontWeight.bold), ), ), @@ -268,14 +268,14 @@ class WidgetDetailTitle extends StatelessWidget { Widget _buildRight(WidgetModel model) => Column( mainAxisSize: MainAxisSize.min, children: [ - Container( + SizedBox( height: 100, child: Padding( padding: const EdgeInsets.all(8.0), child: Hero( tag: "hero_widget_image_${model.id}", child: ClipRRect( - borderRadius: BorderRadius.all(Radius.circular(8)), + borderRadius: const BorderRadius.all(Radius.circular(8)), child: model.image == null ? Image.asset('assets/images/caver.webp') : Image(image: model.image!))), @@ -283,7 +283,7 @@ class WidgetDetailTitle extends StatelessWidget { ), StarScore( score: model.lever, - star: Star(size: 15, fillColor: Colors.blue), + star: const Star(size: 15, fillColor: Colors.blue), ) ], ); diff --git a/lib/widget_system/views/widget_home_view/background.dart b/lib/widget_system/views/widget_home_view/background.dart index 787b322..80fca07 100644 --- a/lib/widget_system/views/widget_home_view/background.dart +++ b/lib/widget_system/views/widget_home_view/background.dart @@ -1,8 +1,7 @@ import 'package:flutter/material.dart'; class BackgroundShower extends StatelessWidget { - - + const BackgroundShower({Key? key}) : super(key: key); @override Widget build(BuildContext context) { diff --git a/lib/widget_system/views/widget_home_view/home_drawer.dart b/lib/widget_system/views/widget_home_view/home_drawer.dart index 33a6744..ac4b063 100644 --- a/lib/widget_system/views/widget_home_view/home_drawer.dart +++ b/lib/widget_system/views/widget_home_view/home_drawer.dart @@ -37,10 +37,10 @@ class HomeDrawer extends StatelessWidget { _buildItem(context, TolyIcon.icon_them, '应用设置', UnitRouter.setting), _buildItem( context, TolyIcon.icon_layout, '数据管理', UnitRouter.data_manage), - Divider(height: 1), + const Divider(height: 1), _buildFlutterUnit(context), _buildItem(context, TolyIcon.icon_code, 'Dart 手册', ''), - Divider(height: 1), + const Divider(height: 1), _buildItem(context, Icons.info, '关于应用', UnitRouter.about_app), _buildItem(context, TolyIcon.icon_kafei, '联系本王', UnitRouter.about_me), ], diff --git a/lib/widget_system/views/widget_home_view/home_page.dart b/lib/widget_system/views/widget_home_view/home_page.dart index 0d1b2d1..76c204b 100644 --- a/lib/widget_system/views/widget_home_view/home_page.dart +++ b/lib/widget_system/views/widget_home_view/home_page.dart @@ -22,6 +22,8 @@ import 'background.dart'; import 'toly_app_bar.dart'; class HomePage extends StatefulWidget { + const HomePage({Key? key}) : super(key: key); + @override _HomePageState createState() => _HomePageState(); } @@ -78,9 +80,9 @@ class _HomePageState extends State Widget _buildBackground(BuildContext context, GlobalState state) { if (state.showBackGround) { - return BackgroundShower(); + return const BackgroundShower(); } - return Container(); + return const SizedBox.shrink(); } Widget _buildContent(WidgetsState state) { @@ -92,12 +94,13 @@ class _HomePageState extends State if (state is WidgetsLoaded) { List items = state.widgets; - if (items.isEmpty) + if (items.isEmpty) { return const SliverFillRemaining( child: EmptyShower( message: "没数据,哥也没办法\n(≡ _ ≡)/~┴┴", ), ); + } return SliverList( delegate: SliverChildBuilderDelegate( (_, int index) => _buildHomeItem(items[index]), diff --git a/lib/widget_system/views/widget_home_view/toly_app_bar.dart b/lib/widget_system/views/widget_home_view/toly_app_bar.dart index c8fb379..6229283 100644 --- a/lib/widget_system/views/widget_home_view/toly_app_bar.dart +++ b/lib/widget_system/views/widget_home_view/toly_app_bar.dart @@ -6,7 +6,7 @@ class TolyAppBar extends StatefulWidget { final double maxHeight; final Function(int)? onItemClick; - TolyAppBar({required this.maxHeight, this.onItemClick, this.defaultIndex = 0}); + const TolyAppBar({Key? key, required this.maxHeight, this.onItemClick, this.defaultIndex = 0}) : super(key: key); @override _TolyAppBarState createState() => _TolyAppBarState(); diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Column/node1_base.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Column/node1_base.dart index 8af2ac7..d35167f 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Column/node1_base.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Column/node1_base.dart @@ -16,6 +16,8 @@ import 'package:flutter/material.dart'; // } class CustomColumn extends StatelessWidget { + const CustomColumn({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return Column( @@ -29,9 +31,9 @@ class CustomColumn extends StatelessWidget { Widget _buildTitle() { return Container( height: 70, - color: Color(0x4484FFFF), + color: const Color(0x4484FFFF), child: Row( - children: [ + children: const [ Padding( child: Icon( Icons.add_location, @@ -58,7 +60,7 @@ class CustomColumn extends StatelessWidget { width: MediaQuery.of(ctx).size.width, color: Colors.orangeAccent, height: 100, - child: Icon( + child: const Icon( Icons.android, size: 50, color: Colors.white, diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/CustomMultiChildLayout/node1_base.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/CustomMultiChildLayout/node1_base.dart index 28e1d3a..04ac342 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/CustomMultiChildLayout/node1_base.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/CustomMultiChildLayout/node1_base.dart @@ -15,6 +15,8 @@ import 'package:flutter/material.dart'; class CustomMultiChildLayoutDemo extends StatelessWidget { + const CustomMultiChildLayoutDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return Container( @@ -23,13 +25,13 @@ class CustomMultiChildLayoutDemo extends StatelessWidget { color: Colors.grey.withAlpha(33), child: CustomMultiChildLayout( delegate: CornerCustomMultiChildLayout( - padding:EdgeInsets.only(left: 10,top: 5,right: 10,bottom: 5), + padding:const EdgeInsets.only(left: 10,top: 5,right: 10,bottom: 5), ), children: [ - LayoutId(id: CornerType.topLeft, child: Box50(Colors.red)), - LayoutId(id: CornerType.topRight, child: Box50(Colors.yellow)), - LayoutId(id: CornerType.bottomLeft, child: Box50(Colors.blue)), - LayoutId(id: CornerType.bottomRight, child: Box50(Colors.green)), + LayoutId(id: CornerType.topLeft, child: const Box50(Colors.red)), + LayoutId(id: CornerType.topRight, child: const Box50(Colors.yellow)), + LayoutId(id: CornerType.bottomLeft, child: const Box50(Colors.blue)), + LayoutId(id: CornerType.bottomRight, child: const Box50(Colors.green)), ], ), ); @@ -39,7 +41,7 @@ class CustomMultiChildLayoutDemo extends StatelessWidget { // 50 颜色盒 class Box50 extends StatelessWidget { final Color color; - Box50(this.color); + const Box50(this.color, {Key? key}) : super(key: key); @override Widget build(BuildContext context) { diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node1_direction.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node1_direction.dart index e720715..b740fea 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node1_direction.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node1_direction.dart @@ -13,40 +13,33 @@ import 'package:flutter/material.dart'; // "【direction】 : 方向 【Axis】", // } class DirectionFlex extends StatelessWidget { - static TextStyle textStyle = - TextStyle(color: Colors.white, fontWeight: FontWeight.bold); + DirectionFlex({Key? key}) : super(key: key); - final blueBox = Container( + static TextStyle textStyle = + const TextStyle(color: Colors.white, fontWeight: FontWeight.bold); + + final Widget blueBox = Container( alignment: Alignment.center, color: Colors.blue, height: 20, width: 30, - child: Text( - '1', - style: textStyle, - ), + child: Text('1', style: textStyle), ); - final redBox = Container( + final Widget redBox = Container( alignment: Alignment.center, color: Colors.red, height: 30, width: 40, - child: Text( - '2', - style: textStyle, - ), + child: Text('2', style: textStyle), ); - final greenBox = Container( + final Widget greenBox = Container( alignment: Alignment.center, color: Colors.green, height: 20, width: 20, - child: Text( - '3', - style: textStyle, - ), + child: Text('3', style: textStyle), ); @override @@ -55,7 +48,7 @@ class DirectionFlex extends StatelessWidget { children: Axis.values .map((mode) => Column(children: [ Container( - margin: EdgeInsets.all(5), + margin: const EdgeInsets.all(5), width: 160, height: 80, color: Colors.grey.withAlpha(33), @@ -65,7 +58,7 @@ class DirectionFlex extends StatelessWidget { .toList()); } - _buildItem(mode) => Flex( + Widget _buildItem(mode) => Flex( direction: mode, children: [ blueBox, redBox, greenBox diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node2_mainAxisAlignment.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node2_mainAxisAlignment.dart index 318855b..15f2a22 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node2_mainAxisAlignment.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node2_mainAxisAlignment.dart @@ -12,41 +12,33 @@ import 'package:flutter/material.dart'; // "【mainAxisAlignment】 : 主轴对齐 【MainAxisAlignment】", // } class MainAxisAlignmentFlex extends StatelessWidget { + MainAxisAlignmentFlex({Key? key}) : super(key: key); static TextStyle textStyle = - TextStyle(color: Colors.white, fontWeight: FontWeight.bold); + const TextStyle(color: Colors.white, fontWeight: FontWeight.bold); - final blueBox = Container( + final Widget blueBox = Container( alignment: Alignment.center, color: Colors.blue, height: 20, width: 30, - child: Text( - '1', - style: textStyle, - ), + child: Text('1', style: textStyle), ); - final redBox = Container( + final Widget redBox = Container( alignment: Alignment.center, color: Colors.red, height: 30, width: 40, - child: Text( - '2', - style: textStyle, - ), + child: Text('2', style: textStyle), ); - final greenBox = Container( + final Widget greenBox = Container( alignment: Alignment.center, color: Colors.green, height: 20, width: 20, - child: Text( - '3', - style: textStyle, - ), + child: Text('3', style: textStyle), ); @override @@ -56,7 +48,7 @@ class MainAxisAlignmentFlex extends StatelessWidget { children: MainAxisAlignment.values .map((mode) => Column(children: [ Container( - margin: EdgeInsets.all(5), + margin: const EdgeInsets.all(5), width: 160, height: 80, color: Colors.grey.withAlpha(33), @@ -66,7 +58,7 @@ class MainAxisAlignmentFlex extends StatelessWidget { .toList()); } - _buildItem(mode) => Flex( + Widget _buildItem(mode) => Flex( direction: Axis.horizontal, mainAxisAlignment: mode, children: [ diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node3_crossAxisAlignment.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node3_crossAxisAlignment.dart index 3c62757..9071792 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node3_crossAxisAlignment.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node3_crossAxisAlignment.dart @@ -12,43 +12,45 @@ import 'package:flutter/material.dart'; // "【crossAxisAlignment】 : 交叉轴对齐 【CrossAxisAlignment】", // } class CrossAxisAlignmentFlex extends StatelessWidget { + CrossAxisAlignmentFlex({Key? key}) : super(key: key); static TextStyle textStyle = - TextStyle(color: Colors.white, fontWeight: FontWeight.bold); + const TextStyle(color: Colors.white, fontWeight: FontWeight.bold); - final blueBox = Container( + final Widget blueBox = Container( alignment: Alignment.center, color: Colors.blue, height: 20, width: 30, child: Text( '1', - style: textStyle, + style: textStyle ), ); - final redBox = Container( + final Widget redBox = Container( alignment: Alignment.center, color: Colors.red, height: 30, width: 40, child: Text( '2', - style: textStyle, + style: textStyle ), ); - final greenBox = Container( + final Widget greenBox = Container( alignment: Alignment.center, color: Colors.green, height: 20, width: 20, child: Text( '3', - style: textStyle, + style: textStyle ), ); + @override Widget build(BuildContext context) { return Wrap( @@ -56,7 +58,7 @@ class CrossAxisAlignmentFlex extends StatelessWidget { children: CrossAxisAlignment.values .map((mode) => Column(children: [ Container( - margin: EdgeInsets.all(5), + margin: const EdgeInsets.all(5), width: 160, height: 80, color: Colors.grey.withAlpha(33), @@ -66,7 +68,7 @@ class CrossAxisAlignmentFlex extends StatelessWidget { .toList()); } - _buildItem(mode) => Flex( + Widget _buildItem(mode) => Flex( direction: Axis.horizontal, crossAxisAlignment: mode, textBaseline: TextBaseline.alphabetic, diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node4_verticalDirection.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node4_verticalDirection.dart index 3365bd1..e3b2c6f 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node4_verticalDirection.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node4_verticalDirection.dart @@ -12,41 +12,33 @@ import 'package:flutter/material.dart'; // "【verticalDirection】 : 垂直方向顺序 【VerticalDirection】", // } class VerticalDirectionFlex extends StatelessWidget { + VerticalDirectionFlex({Key? key}) : super(key: key); static TextStyle textStyle = - TextStyle(color: Colors.white, fontWeight: FontWeight.bold); + const TextStyle(color: Colors.white, fontWeight: FontWeight.bold); - final blueBox = Container( + final Widget blueBox = Container( alignment: Alignment.center, color: Colors.blue, height: 20, width: 30, - child: Text( - '1', - style: textStyle, - ), + child: Text('1', style: textStyle), ); - final redBox = Container( + final Widget redBox = Container( alignment: Alignment.center, color: Colors.red, height: 30, width: 40, - child: Text( - '2', - style: textStyle, - ), + child: Text('2', style: textStyle), ); - final greenBox = Container( + final Widget greenBox = Container( alignment: Alignment.center, color: Colors.green, height: 20, width: 20, - child: Text( - '3', - style: textStyle, - ), + child: Text('3', style: textStyle), ); @override @@ -56,7 +48,7 @@ class VerticalDirectionFlex extends StatelessWidget { children: VerticalDirection.values .map((mode) => Column(children: [ Container( - margin: EdgeInsets.all(5), + margin: const EdgeInsets.all(5), width: 160, height: 80, color: Colors.grey.withAlpha(33), @@ -66,11 +58,9 @@ class VerticalDirectionFlex extends StatelessWidget { .toList()); } - _buildItem(mode) => Flex( - direction: Axis.vertical, - verticalDirection: mode, - children: [ - blueBox, redBox, greenBox - ], - ); + Widget _buildItem(mode) => Flex( + direction: Axis.vertical, + verticalDirection: mode, + children: [blueBox, redBox, greenBox], + ); } diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node5_textDirection.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node5_textDirection.dart index 5f2cac6..e0abf3f 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node5_textDirection.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/node5_textDirection.dart @@ -12,41 +12,33 @@ import 'package:flutter/material.dart'; // "【textDirection】 : 水平方向顺序 【TextDirection】", // } class TextDirectionFlex extends StatelessWidget { + TextDirectionFlex({Key? key}) : super(key: key); static TextStyle textStyle = - TextStyle(color: Colors.white, fontWeight: FontWeight.bold); + const TextStyle(color: Colors.white, fontWeight: FontWeight.bold); - final blueBox = Container( + final Widget blueBox = Container( alignment: Alignment.center, color: Colors.blue, height: 20, width: 30, - child: Text( - '1', - style: textStyle, - ), + child: Text('1', style: textStyle), ); - final redBox = Container( + final Widget redBox = Container( alignment: Alignment.center, color: Colors.red, height: 30, width: 40, - child: Text( - '2', - style: textStyle, - ), + child: Text('2', style: textStyle), ); - final greenBox = Container( + final Widget greenBox = Container( alignment: Alignment.center, color: Colors.green, height: 20, width: 20, - child: Text( - '3', - style: textStyle, - ), + child: Text('3', style: textStyle), ); @override @@ -56,21 +48,19 @@ class TextDirectionFlex extends StatelessWidget { children: TextDirection.values .map((mode) => Column(children: [ Container( - margin: EdgeInsets.all(5), - width: 160, - height: 80, - color: Colors.grey.withAlpha(33), - child: _buildItem(mode)), + margin: const EdgeInsets.all(5), + width: 160, + height: 80, + color: Colors.grey.withAlpha(33), + child: _buildItem(mode)), Text(mode.toString().split('.')[1]) ])) .toList()); } - _buildItem(mode) => Flex( - direction: Axis.horizontal, - textDirection: mode, - children: [ - blueBox, redBox, greenBox - ], - ); + Widget _buildItem(mode) => Flex( + direction: Axis.horizontal, + textDirection: mode, + children: [blueBox, redBox, greenBox], + ); } \ No newline at end of file diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/zz_node_play.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/zz_node_play.dart index d056da0..1d70d95 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/zz_node_play.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flex/zz_node_play.dart @@ -5,35 +5,37 @@ import 'package:flutter/material.dart'; /// 说明: class PlayFlex extends StatefulWidget { + const PlayFlex({Key? key}) : super(key: key); + @override _PlayFlexState createState() => _PlayFlexState(); } class _PlayFlexState extends State { - final redBox = Container( + final Widget redBox = Container( color: Colors.red, height: 50, width: 50, ); - final blueBox = Container( + final Widget blueBox = Container( color: Colors.blue, width: 60, height: 60, ); - final yellowBox = Container( + final Widget yellowBox = Container( color: Colors.yellow, height: 10, width: 10, ); - final greenBox = Container( + final Widget greenBox = Container( color: Colors.green, height: 30, width: 20, ); - var _direction = Axis.horizontal; - var _mainAxisAlignment = MainAxisAlignment.start; - var _crossAxisAlignment = CrossAxisAlignment.center; - var _verticalDirection = VerticalDirection.up; + Axis _direction = Axis.horizontal; + MainAxisAlignment _mainAxisAlignment = MainAxisAlignment.start; + CrossAxisAlignment _crossAxisAlignment = CrossAxisAlignment.center; + VerticalDirection _verticalDirection = VerticalDirection.up; @override Widget build(BuildContext context) { @@ -66,7 +68,7 @@ class _PlayFlexState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text( + const Text( "direction", style: TextStyle( fontSize: 16, color: Colors.blue, fontWeight: FontWeight.bold), @@ -97,7 +99,7 @@ class _PlayFlexState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text( + const Text( "mainAxisAlignment", style: TextStyle( fontSize: 16, color: Colors.blue, fontWeight: FontWeight.bold), @@ -128,7 +130,7 @@ class _PlayFlexState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text( + const Text( "crossAxisAlignment", style: TextStyle( fontSize: 16, color: Colors.blue, fontWeight: FontWeight.bold), @@ -159,7 +161,7 @@ class _PlayFlexState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text( + const Text( "MainAxisSize", style: TextStyle( fontSize: 16, color: Colors.blue, fontWeight: FontWeight.bold), diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flow/node1_base.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flow/node1_base.dart index 29b47bf..ef7f4b3 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flow/node1_base.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flow/node1_base.dart @@ -14,6 +14,8 @@ import 'package:flutter/material.dart'; // "【delegate】 : 代理 【FlowDelegate】", // } class CircleFlow extends StatelessWidget { + CircleFlow({Key? key}) : super(key: key); + final List data = List.generate( 16, (index) => index.isEven @@ -37,6 +39,7 @@ class CircleFlow extends StatelessWidget { } class _CircleFlowDelegate extends FlowDelegate { + @override //绘制孩子的方法 void paintChildren(FlowPaintingContext context) { final double radius = context.size.shortestSide / 2; @@ -55,7 +58,5 @@ class _CircleFlowDelegate extends FlowDelegate { } @override - bool shouldRepaint(FlowDelegate oldDelegate) { - return true; - } + bool shouldRepaint(FlowDelegate oldDelegate) => false; } diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flow/node2_anim.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flow/node2_anim.dart index f0d2b93..3ed205e 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flow/node2_anim.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Flow/node2_anim.dart @@ -26,14 +26,14 @@ class BurstFlow extends StatefulWidget { children: data .map((e) => CircleAvatar(backgroundImage: AssetImage(e))) .toList(), - menu: CircleAvatar( + menu: const CircleAvatar( backgroundImage: AssetImage('assets/images/icon_head.webp'), ))); final List children; final Widget menu; - BurstFlow({required this.children, required this.menu}); + const BurstFlow({Key? key, required this.children, required this.menu}) : super(key: key); @override _BurstFlowState createState() => _BurstFlowState(); @@ -48,7 +48,9 @@ class _BurstFlowState extends State @override void initState() { _controller = AnimationController( - duration: Duration(milliseconds: 1000), vsync: this) + duration: const Duration(milliseconds: 1000), + vsync: this, + ) ..addListener(() => setState( () => _rad = (_closed ? (_controller.value) : 1 - _controller.value))) ..addStatusListener((status) { @@ -109,7 +111,5 @@ class _BurstFlowDelegate extends FlowDelegate { } @override - bool shouldRepaint(_BurstFlowDelegate oldDelegate) { - return oldDelegate.rad != rad; - } + bool shouldRepaint(_BurstFlowDelegate oldDelegate) => oldDelegate.rad != rad; } diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/IndexedStack/node1_base.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/IndexedStack/node1_base.dart index 28a0600..0ce56b2 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/IndexedStack/node1_base.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/IndexedStack/node1_base.dart @@ -14,12 +14,14 @@ import 'package:flutter/material.dart'; // "【index】 : 当前显示组件 【int】", // } class CustomIndexedStack extends StatefulWidget { + const CustomIndexedStack({Key? key}) : super(key: key); + @override _CustomIndexedStackState createState() => _CustomIndexedStackState(); } class _CustomIndexedStackState extends State { - var _index = 1; + int _index = 1; @override Widget build(BuildContext context) { @@ -36,7 +38,7 @@ class _CustomIndexedStackState extends State { Container( color: Colors.red, width: 80, - height: 80, + height: 80 ), Positioned( bottom: 10, diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/ListBody/node1_base.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/ListBody/node1_base.dart index 4cc0fa7..ef5cda5 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/ListBody/node1_base.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/ListBody/node1_base.dart @@ -14,10 +14,12 @@ import 'package:flutter/material.dart'; // } class ListBodyDemo extends StatelessWidget { + const ListBodyDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { - return Container( + return SizedBox( height: 300, child: ListView( children: [ diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/NestedScrollViewViewport/node1_base.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/NestedScrollViewViewport/node1_base.dart index c71b927..9d98f3b 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/NestedScrollViewViewport/node1_base.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/NestedScrollViewViewport/node1_base.dart @@ -20,6 +20,8 @@ import 'package:flutter/material.dart'; // } class NestedScrollViewViewportDemo extends StatelessWidget { + const NestedScrollViewViewportDemo({Key? key}) : super(key: key); + final String info = 'NestedScrollViewViewport 在源码中只有一处使用:' '_NestedScrollViewCustomScrollView 继承自 CustomScrollView,复写了 buildViewport 方法,返回 NestedScrollViewViewport 。' @@ -27,12 +29,13 @@ class NestedScrollViewViewportDemo extends StatelessWidget { 'NestedScrollViewViewport 的特点是持有 SliverOverlapAbsorberHandle 类对象 handle,源码中该 handle 在 NestedScrollViewState 中初始化。' '可通过上下文获取,用于 SliverOverlapAbsorber/SliverOverlapInjector 组件,使用详见相关组件。'; + @override Widget build(BuildContext context) { return Container( color: Colors.blue.withOpacity(0.1), - padding: EdgeInsets.all(10), - margin: EdgeInsets.all(10), + padding: const EdgeInsets.all(10), + margin: const EdgeInsets.all(10), child: Text(info), ); } diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/RichText/node1_base.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/RichText/node1_base.dart index 5aa4a78..a13ec94 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/RichText/node1_base.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/RichText/node1_base.dart @@ -12,6 +12,8 @@ import '../../../../app/utils/color_utils.dart'; // " 其他属性与Text相同,详见之。", // } class CustomRichText extends StatelessWidget { + const CustomRichText({Key? key}) : super(key: key); + final str = " 发光强度简称光强,国际单位是(坎德拉)简写cd。" "1cd是指光源在指定方向的单位立体角内发出的光通量。" "光源辐射是均匀时,则光强为I=F/Ω,Ω为立体角,单位为球面度(sr),F为光通量," diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/RichText/node2_widget.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/RichText/node2_widget.dart index db4eb42..0942ca2 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/RichText/node2_widget.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/RichText/node2_widget.dart @@ -10,12 +10,14 @@ import 'package:flutter/material.dart'; // "使用WidgetSpan来承载普通组件,作为RichText的内容", // } class RichTextWithWidget extends StatelessWidget { + const RichTextWithWidget({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return RichText( text: TextSpan( text: 'hello ', - style: TextStyle(color: Colors.black, fontSize: 18), + style: const TextStyle(color: Colors.black, fontSize: 18), children: [ WidgetSpan( child: Image.asset( @@ -24,29 +26,29 @@ class RichTextWithWidget extends StatelessWidget { ), alignment: PlaceholderAlignment.baseline, baseline: TextBaseline.ideographic), - TextSpan( + const TextSpan( text: ' , welcome to ', style: TextStyle(color: Colors.blue, fontSize: 18), ), - WidgetSpan( + const WidgetSpan( child: FlutterLogo(), alignment: PlaceholderAlignment.baseline, baseline: TextBaseline.ideographic), - TextSpan( + const TextSpan( text: ' .\n', ), - TextSpan( + const TextSpan( text: 'focus me on ', style: TextStyle(color: Colors.orange, fontSize: 16), ), - TextSpan( + const TextSpan( text: 'https://github_model.com/toly1994328', style: TextStyle( color: Colors.blue, fontSize: 18, decoration: TextDecoration.underline), ), - TextSpan( + const TextSpan( text: ' .\n', ), ], diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Row/node1_base.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Row/node1_base.dart index 2732a51..aeae442 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Row/node1_base.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Row/node1_base.dart @@ -16,13 +16,15 @@ import 'package:flutter/material.dart'; // } class CustomRow extends StatelessWidget { + const CustomRow({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return Container( height: 70, - color: Color(0x4484FFFF), + color: const Color(0x4484FFFF), child: Row( - children: [ + children: const [ Padding( child: Icon( Icons.add_location, diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/ShrinkWrappingViewport/node1_base.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/ShrinkWrappingViewport/node1_base.dart index 74cb023..0580f29 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/ShrinkWrappingViewport/node1_base.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/ShrinkWrappingViewport/node1_base.dart @@ -18,6 +18,9 @@ import 'package:flutter/material.dart'; // } class ShrinkWrappingViewportDemo extends StatelessWidget { + + const ShrinkWrappingViewportDemo({Key? key}) : super(key: key); + final String info = 'ShrinkWrappingViewport 在源码中只有一处使用:' '在 ScrollView 中如果 shrinkWrap 为 true,会使用 ShrinkWrappingViewport,该属性在其子类 ListView、GridView、CustomScrollView 中可指定。' @@ -28,8 +31,8 @@ class ShrinkWrappingViewportDemo extends StatelessWidget { Widget build(BuildContext context) { return Container( color: Colors.blue.withOpacity(0.1), - padding: EdgeInsets.all(10), - margin: EdgeInsets.all(10), + padding: const EdgeInsets.all(10), + margin: const EdgeInsets.all(10), child: Text(info), ); } diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Stack/node1_base.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Stack/node1_base.dart index ce16eaf..c1fdee4 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Stack/node1_base.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Stack/node1_base.dart @@ -14,27 +14,29 @@ import 'package:flutter/material.dart'; // "【fit】 : 适应模式 【StackFit】", // } class CustomStack extends StatelessWidget { + const CustomStack({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { - var yellowBox = Container( + Widget yellowBox = Container( color: Colors.yellow, height: 100, width: 100, ); - var redBox = Container( + Widget redBox = Container( color: Colors.red, height: 90, width: 90, ); - var greenBox = Container( + Widget greenBox = Container( color: Colors.green, height: 80, width: 80, ); - var cyanBox = Container( + Widget cyanBox = Container( color: Colors.cyanAccent, height: 70, width: 70, diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Stack/node2_positioned.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Stack/node2_positioned.dart index b1d6feb..c4a3985 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Stack/node2_positioned.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Stack/node2_positioned.dart @@ -10,27 +10,29 @@ import 'package:flutter/material.dart'; // "Positioned组件只能用与Stack中,可以指定左上右下的距离对某个组件进行位置精确安放。", // } class PositionedStack extends StatelessWidget { + const PositionedStack({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { - var yellowBox = Container( + Widget yellowBox = Container( color: Colors.yellow, height: 100, width: 100, ); - var redBox = Container( + Widget redBox = Container( color: Colors.red, height: 90, width: 90, ); - var greenBox = Container( + Widget greenBox = Container( color: Colors.green, height: 80, width: 80, ); - var cyanBox = Container( + Widget cyanBox = Container( color: Colors.cyanAccent, height: 70, width: 70, diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Viewport/node1_base.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Viewport/node1_base.dart index b778f13..0cbbb1e 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Viewport/node1_base.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Viewport/node1_base.dart @@ -20,15 +20,17 @@ import 'package:flutter/rendering.dart'; // } class ViewportDemo extends StatelessWidget { + ViewportDemo({Key? key}) : super(key: key); + final data = List.generate(128, (i) => Color(0xFF6600FF - 2 * i)); @override Widget build(BuildContext context) { - return Container( + return SizedBox( height: 250, child: Scrollable( axisDirection: AxisDirection.down, - physics: BouncingScrollPhysics(), + physics: const BouncingScrollPhysics(), dragStartBehavior: DragStartBehavior.start, viewportBuilder: (ctx, position) => Viewport( axisDirection: AxisDirection.down, @@ -43,10 +45,10 @@ class ViewportDemo extends StatelessWidget { } Widget _buildSliverList() => SliverList( - delegate: SliverChildBuilderDelegate( + delegate: SliverChildBuilderDelegate( (_, int index) =>ColorItem(color: data[index],), - childCount: data.length), - ); + childCount: data.length), + ); String colorString(Color color) => "#${color.value.toRadixString(16).padLeft(8, '0').toUpperCase()}"; @@ -55,7 +57,8 @@ class ViewportDemo extends StatelessWidget { class ColorItem extends StatefulWidget { final Color color; - ColorItem({Key? key,required this.color}) : super(key: key); + const ColorItem({Key? key, required this.color}) : super(key: key); + @override _ColorItemState createState() => _ColorItemState(); } @@ -71,18 +74,15 @@ class _ColorItemState extends State { @override Widget build(BuildContext context) { return Container( - margin: EdgeInsets.only(top: 1), + margin: const EdgeInsets.only(top: 1), alignment: Alignment.center, width: 100, height: 60, color: widget.color, child: Text( colorString(widget.color), - style: TextStyle(color: Colors.white, shadows: [ - Shadow( - color: Colors.black, - offset: Offset(.5, .5), - blurRadius: 2) + style: const TextStyle(color: Colors.white, shadows: [ + Shadow(color: Colors.black, offset: Offset(.5, .5), blurRadius: 2) ]), ), ); diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node1_base.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node1_base.dart index 0640e84..894e2f7 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node1_base.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node1_base.dart @@ -13,13 +13,15 @@ import 'package:flutter/material.dart'; // "【direction】 : 主轴对齐 【Axis】", // } class DirectionWrap extends StatelessWidget { + DirectionWrap({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return Wrap( children: Axis.values .map((mode) => Column(children: [ Container( - margin: EdgeInsets.all(5), + margin: const EdgeInsets.all(5), width: 160, height: 100, color: Colors.grey.withAlpha(33), @@ -28,44 +30,44 @@ class DirectionWrap extends StatelessWidget { ])) .toList()); } - final yellowBox = Container( + final Widget yellowBox = Container( color: Colors.yellow, height: 30, width: 50, ); - final redBox = Container( + final Widget redBox = Container( color: Colors.red, height: 40, width: 40, ); - final greenBox = Container( + final Widget greenBox = Container( color: Colors.green, height: 40, width: 20, ); - final blackBox = Container( + final Widget blackBox = Container( color: Colors.black, height: 10, width: 10, ); - final purpleBox = Container( + final Widget purpleBox = Container( color: Colors.purple, height: 20, width: 20, ); - final orangeBox = Container( + final Widget orangeBox = Container( color: Colors.orange, height: 80, width: 20, ); - final cyanBox = Container( + final Widget cyanBox = Container( color: Colors.cyanAccent, height: 10, width: 20, ); - _buildItem(mode) => Wrap( + Widget _buildItem(mode) => Wrap( direction: mode, runSpacing: 10, spacing: 10, diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node2_alignment.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node2_alignment.dart index e30a11e..b37f59d 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node2_alignment.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node2_alignment.dart @@ -11,13 +11,15 @@ import 'package:flutter/material.dart'; // "【alignment】 : 主轴对齐 【WrapAlignment】", // } class WrapAlignmentWrap extends StatelessWidget { + WrapAlignmentWrap({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return Wrap( children: WrapAlignment.values .map((mode) => Column(children: [ Container( - margin: EdgeInsets.all(5), + margin: const EdgeInsets.all(5), width: 160, height: 100, color: Colors.grey.withAlpha(88), @@ -27,44 +29,44 @@ class WrapAlignmentWrap extends StatelessWidget { .toList()); } - final yellowBox = Container( + final Widget yellowBox = Container( color: Colors.yellow, height: 30, width: 50, ); - final redBox = Container( + final Widget redBox = Container( color: Colors.red, height: 40, width: 40, ); - final greenBox = Container( + final Widget greenBox = Container( color: Colors.green, height: 40, width: 20, ); - final blackBox = Container( + final Widget blackBox = Container( color: Colors.black, height: 10, width: 10, ); - final purpleBox = Container( + final Widget purpleBox = Container( color: Colors.purple, height: 20, width: 20, ); - final orangeBox = Container( + final Widget orangeBox = Container( color: Colors.orange, height: 80, width: 20, ); - final cyanBox = Container( + final Widget cyanBox = Container( color: Colors.cyanAccent, height: 10, width: 20, ); - _buildItem(mode) => Wrap( + Widget _buildItem(mode) => Wrap( alignment: mode, runSpacing: 10, spacing: 10, diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node3_crossAxisAlignment.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node3_crossAxisAlignment.dart index 00ddee9..90b61ca 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node3_crossAxisAlignment.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node3_crossAxisAlignment.dart @@ -12,13 +12,15 @@ import 'package:flutter/material.dart'; // "【crossAxisAlignment】 : 交叉轴对齐 【CrossAxisAlignment】", // } class CrossAxisAlignmentWrap extends StatelessWidget { + CrossAxisAlignmentWrap({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return Wrap( children: WrapCrossAlignment.values .map((mode) => Column(children: [ Container( - margin: EdgeInsets.all(5), + margin: const EdgeInsets.all(5), width: 160, height: 100, color: Colors.grey.withAlpha(88), @@ -28,44 +30,44 @@ class CrossAxisAlignmentWrap extends StatelessWidget { .toList()); } - final yellowBox = Container( + final Widget yellowBox = Container( color: Colors.yellow, height: 30, width: 50, ); - final redBox = Container( + final Widget redBox = Container( color: Colors.red, height: 40, width: 40, ); - final greenBox = Container( + final Widget greenBox = Container( color: Colors.green, height: 40, width: 20, ); - final blackBox = Container( + final Widget blackBox = Container( color: Colors.black, height: 10, width: 10, ); - final purpleBox = Container( + final Widget purpleBox = Container( color: Colors.purple, height: 20, width: 20, ); - final orangeBox = Container( + final Widget orangeBox = Container( color: Colors.orange, height: 80, width: 20, ); - final cyanBox = Container( + final Widget cyanBox = Container( color: Colors.cyanAccent, height: 10, width: 20, ); - _buildItem(mode) => Wrap( + Widget _buildItem(mode) => Wrap( crossAxisAlignment: mode, runSpacing: 10, spacing: 10, diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node4_textDirection.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node4_textDirection.dart index a3bfd3c..252839c 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node4_textDirection.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node4_textDirection.dart @@ -12,13 +12,15 @@ import 'package:flutter/material.dart'; // "【textDirection】 : 文字方向 【TextDirection】", // } class TextDirectionWrap extends StatelessWidget { + TextDirectionWrap({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return Wrap( children: TextDirection.values .map((mode) => Column(children: [ Container( - margin: EdgeInsets.all(5), + margin: const EdgeInsets.all(5), width: 160, height: 100, color: Colors.grey.withAlpha(88), @@ -28,44 +30,44 @@ class TextDirectionWrap extends StatelessWidget { .toList()); } - final yellowBox = Container( + final Widget yellowBox = Container( color: Colors.yellow, height: 30, width: 50, ); - final redBox = Container( + final Widget redBox = Container( color: Colors.red, height: 40, width: 40, ); - final greenBox = Container( + final Widget greenBox = Container( color: Colors.green, height: 40, width: 20, ); - final blackBox = Container( + final Widget blackBox = Container( color: Colors.black, height: 10, width: 10, ); - final purpleBox = Container( + final Widget purpleBox = Container( color: Colors.purple, height: 20, width: 20, ); - final orangeBox = Container( + final Widget orangeBox = Container( color: Colors.orange, height: 80, width: 20, ); - final cyanBox = Container( + final Widget cyanBox = Container( color: Colors.cyanAccent, height: 10, width: 20, ); - _buildItem(mode) => Wrap( + Widget _buildItem(mode) => Wrap( textDirection: mode, runSpacing: 10, spacing: 10, diff --git a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node5_verticalDirection.dart b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node5_verticalDirection.dart index 9aa9556..d8ea28b 100644 --- a/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node5_verticalDirection.dart +++ b/lib/widget_system/widgets/MultiChildRenderObjectWidget/Wrap/node5_verticalDirection.dart @@ -12,13 +12,15 @@ import 'package:flutter/material.dart'; // "【verticalDirection】 : 竖直方向 【VerticalDirection】", // } class VerticalDirectionWrap extends StatelessWidget { + VerticalDirectionWrap({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return Wrap( children: VerticalDirection.values .map((mode) => Column(children: [ Container( - margin: EdgeInsets.all(5), + margin: const EdgeInsets.all(5), width: 160, height: 100, color: Colors.grey.withAlpha(88), @@ -28,49 +30,49 @@ class VerticalDirectionWrap extends StatelessWidget { .toList()); } - final yellowBox = Container( + final Widget yellowBox = Container( color: Colors.yellow, height: 30, width: 50, ); - final redBox = Container( + final Widget redBox = Container( color: Colors.red, height: 40, width: 40, ); - final greenBox = Container( + final Widget greenBox = Container( color: Colors.green, height: 40, width: 20, ); - final blackBox = Container( + final Widget blackBox = Container( color: Colors.black, height: 10, width: 10, ); - final purpleBox = Container( + final Widget purpleBox = Container( color: Colors.purple, height: 20, width: 20, ); - final orangeBox = Container( + final Widget orangeBox = Container( color: Colors.orange, height: 80, width: 20, ); - final cyanBox = Container( + final Widget cyanBox = Container( color: Colors.cyanAccent, height: 10, width: 20, ); - _buildItem(mode) => Wrap( + Widget _buildItem(mode) => Wrap( verticalDirection: mode, direction: Axis.vertical, runSpacing: 10, spacing: 10, - children: [ + children: [ yellowBox, redBox, greenBox, cyanBox, blackBox, purpleBox, orangeBox, ], diff --git a/lib/widget_system/widgets/Other/ErrorWidget/node1_base.dart b/lib/widget_system/widgets/Other/ErrorWidget/node1_base.dart index 7dce9ac..03edd9a 100644 --- a/lib/widget_system/widgets/Other/ErrorWidget/node1_base.dart +++ b/lib/widget_system/widgets/Other/ErrorWidget/node1_base.dart @@ -12,9 +12,11 @@ import 'package:flutter/material.dart'; // "入参 : 显示信息 【Object】", // } class ErrorWidgetDemo extends StatelessWidget { + const ErrorWidgetDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { - return Container( + return SizedBox( height: 200, child: ErrorWidget( 'I am Error ErrorWidget\n' diff --git a/lib/widget_system/widgets/Other/ListWheelViewport/node1_base.dart b/lib/widget_system/widgets/Other/ListWheelViewport/node1_base.dart index e4ea3f6..6996a1a 100644 --- a/lib/widget_system/widgets/Other/ListWheelViewport/node1_base.dart +++ b/lib/widget_system/widgets/Other/ListWheelViewport/node1_base.dart @@ -17,6 +17,8 @@ import 'package:flutter/material.dart'; // } class ListWheelViewportDemo extends StatelessWidget { + ListWheelViewportDemo({Key? key}) : super(key: key); + final List data = [ Colors.blue[50]!, Colors.blue[100]!, @@ -40,12 +42,12 @@ class ListWheelViewportDemo extends StatelessWidget { @override Widget build(BuildContext context) { - return Container( + return SizedBox( height: 250, width: 320, child: Scrollable( axisDirection: AxisDirection.down, - physics: BouncingScrollPhysics(), + physics: const BouncingScrollPhysics(), dragStartBehavior: DragStartBehavior.start, viewportBuilder: (ctx, position) => ListWheelViewport( itemExtent: 100, @@ -60,8 +62,12 @@ class ListWheelViewportDemo extends StatelessWidget { alignment: Alignment.center, color: color, child: Text(colorString(color), - style: TextStyle(color: Colors.white, shadows: [ - Shadow(color: Colors.black, offset: Offset(.5, .5), blurRadius: 2) + style: const TextStyle(color: Colors.white, shadows: [ + Shadow( + color: Colors.black, + offset: Offset(.5, .5), + blurRadius: 2, + ), ])), ); diff --git a/lib/widget_system/widgets/Other/ListWheelViewport/node2_perspective.dart b/lib/widget_system/widgets/Other/ListWheelViewport/node2_perspective.dart index 5c9e476..7efbbb0 100644 --- a/lib/widget_system/widgets/Other/ListWheelViewport/node2_perspective.dart +++ b/lib/widget_system/widgets/Other/ListWheelViewport/node2_perspective.dart @@ -15,6 +15,8 @@ import 'package:flutter/material.dart'; // } class ListWheelViewportDemo2 extends StatelessWidget { + ListWheelViewportDemo2({Key? key}) : super(key: key); + final List data = [ Colors.blue[50]!, Colors.blue[100]!, @@ -38,12 +40,12 @@ class ListWheelViewportDemo2 extends StatelessWidget { @override Widget build(BuildContext context) { - return Container( + return SizedBox( height: 250, width: 320, child: Scrollable( axisDirection: AxisDirection.down, - physics: BouncingScrollPhysics(), + physics: const BouncingScrollPhysics(), dragStartBehavior: DragStartBehavior.start, viewportBuilder: (ctx, position) => ListWheelViewport( perspective: 0.008, @@ -58,13 +60,17 @@ class ListWheelViewportDemo2 extends StatelessWidget { } Widget _buildItem(Color color) => Container( - alignment: Alignment.center, - color: color, - child: Text(colorString(color), - style: TextStyle(color: Colors.white, shadows: [ - Shadow(color: Colors.black, offset: Offset(.5, .5), blurRadius: 2) + alignment: Alignment.center, + color: color, + child: Text(colorString(color), + style: const TextStyle(color: Colors.white, shadows: [ + Shadow( + color: Colors.black, + offset: Offset(.5, .5), + blurRadius: 2, + ) ])), - ); + ); String colorString(Color color) => "#${color.value.toRadixString(16).padLeft(8, '0').toUpperCase()}"; diff --git a/lib/widget_system/widgets/Other/ListWheelViewport/node3_magnifier.dart b/lib/widget_system/widgets/Other/ListWheelViewport/node3_magnifier.dart index 5a6bc3c..fbbfecf 100644 --- a/lib/widget_system/widgets/Other/ListWheelViewport/node3_magnifier.dart +++ b/lib/widget_system/widgets/Other/ListWheelViewport/node3_magnifier.dart @@ -17,6 +17,7 @@ import 'package:flutter/material.dart'; // } class ListWheelViewportDemo3 extends StatelessWidget { + ListWheelViewportDemo3({Key? key}) : super(key: key); final List data = [ Colors.blue[50]!, @@ -39,15 +40,16 @@ class ListWheelViewportDemo3 extends StatelessWidget { Colors.blue[100]!, ]; + @override Widget build(BuildContext context) { - return Container( + return SizedBox( height: 250, width: 320, // color: Colors.red, child: Scrollable( axisDirection: AxisDirection.down, - physics: BouncingScrollPhysics(), + physics: const BouncingScrollPhysics(), dragStartBehavior: DragStartBehavior.start, viewportBuilder: (ctx, position) => ListWheelViewport( perspective: 0.008, @@ -69,7 +71,7 @@ class ListWheelViewportDemo3 extends StatelessWidget { alignment: Alignment.center, color: color, child: Text(colorString(color), - style: TextStyle(color: Colors.white, shadows: [ + style: const TextStyle(color: Colors.white, shadows: [ Shadow(color: Colors.black, offset: Offset(.5, .5), blurRadius: 2) ])), ); diff --git a/lib/widget_system/widgets/Other/ListWheelViewport/node4_opacity.dart b/lib/widget_system/widgets/Other/ListWheelViewport/node4_opacity.dart index 47ac3d5..8536331 100644 --- a/lib/widget_system/widgets/Other/ListWheelViewport/node4_opacity.dart +++ b/lib/widget_system/widgets/Other/ListWheelViewport/node4_opacity.dart @@ -15,6 +15,7 @@ import 'package:flutter/material.dart'; // } class ListWheelViewportDemo4 extends StatelessWidget { + ListWheelViewportDemo4({Key? key}) : super(key: key); final List data = [ Colors.blue[50]!, @@ -39,25 +40,25 @@ class ListWheelViewportDemo4 extends StatelessWidget { @override Widget build(BuildContext context) { - return Container( + return SizedBox( height: 250, width: 320, // color: Colors.red, child: Scrollable( axisDirection: AxisDirection.down, - physics: BouncingScrollPhysics(), + physics: const BouncingScrollPhysics(), dragStartBehavior: DragStartBehavior.start, viewportBuilder: (ctx, position) => ListWheelViewport( - perspective: 0.008, - squeeze: 1, - diameterRatio: 2, - offAxisFraction: 0.2, - overAndUnderCenterOpacity: 0.4, - itemExtent: 50, - offset: position, - childDelegate: ListWheelChildLoopingListDelegate( - children: data.map((e) => _buildItem(e)).toList()), - )), + perspective: 0.008, + squeeze: 1, + diameterRatio: 2, + offAxisFraction: 0.2, + overAndUnderCenterOpacity: 0.4, + itemExtent: 50, + offset: position, + childDelegate: ListWheelChildLoopingListDelegate( + children: data.map((e) => _buildItem(e)).toList()), + )), ); } @@ -65,9 +66,13 @@ class ListWheelViewportDemo4 extends StatelessWidget { alignment: Alignment.center, color: color, child: Text(colorString(color), - style: TextStyle(color: Colors.white, shadows: [ - Shadow(color: Colors.black, offset: Offset(.5, .5), blurRadius: 2) - ])), + style: const TextStyle(color: Colors.white, shadows: [ + Shadow( + color: Colors.black, + offset: Offset(.5, .5), + blurRadius: 2, + ) + ])), ); String colorString(Color color) => diff --git a/lib/widget_system/widgets/Other/PerformanceOverlay/node1_base.dart b/lib/widget_system/widgets/Other/PerformanceOverlay/node1_base.dart index f420a57..7362c0d 100644 --- a/lib/widget_system/widgets/Other/PerformanceOverlay/node1_base.dart +++ b/lib/widget_system/widgets/Other/PerformanceOverlay/node1_base.dart @@ -12,6 +12,8 @@ import 'package:flutter/material.dart'; // } class PerformanceOverlayDemo extends StatelessWidget { + const PerformanceOverlayDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return PerformanceOverlay.allEnabled( diff --git a/lib/widget_system/widgets/Other/RawImage/node1_base.dart b/lib/widget_system/widgets/Other/RawImage/node1_base.dart index b574a2c..c33cfcb 100644 --- a/lib/widget_system/widgets/Other/RawImage/node1_base.dart +++ b/lib/widget_system/widgets/Other/RawImage/node1_base.dart @@ -21,6 +21,8 @@ import 'package:flutter/services.dart'; // "很多属性同Image,详见之.", // } class RawImageDemo extends StatefulWidget { + const RawImageDemo({Key? key}) : super(key: key); + @override _RawImageDemoState createState() => _RawImageDemoState(); } @@ -36,11 +38,12 @@ class _RawImageDemoState extends State { @override Widget build(BuildContext context) { - if (_image == null) + if (_image == null) { return const SizedBox( width: 80, height: 80, ); + } return Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, @@ -87,5 +90,4 @@ class _RawImageDemoState extends State { List bytes = data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes); return decodeImageFromList(Uint8List.fromList(bytes)); } - } diff --git a/lib/widget_system/widgets/Other/RenderObjectToWidgetAdapter/node1_base.dart b/lib/widget_system/widgets/Other/RenderObjectToWidgetAdapter/node1_base.dart index c11f144..50203ac 100644 --- a/lib/widget_system/widgets/Other/RenderObjectToWidgetAdapter/node1_base.dart +++ b/lib/widget_system/widgets/Other/RenderObjectToWidgetAdapter/node1_base.dart @@ -17,6 +17,8 @@ import 'package:flutter/material.dart'; // } class RenderObjectToWidgetAdapterDemo extends StatelessWidget { + const RenderObjectToWidgetAdapterDemo({Key? key}) : super(key: key); + final String info = '该组件并没有什么太大的使用价值,但却非常有纪念意义。它是 Flutter 框架中最顶层的 Widget,它的 child 是 runApp 传入的组件,在 attachRootWidget 方法中被实例化。' '它持有根渲染对象 RenderView ,负责创建根元素 RenderObjectToWidgetElement,是一个无名英雄,一个深藏功与名的组件。'; @@ -25,8 +27,8 @@ class RenderObjectToWidgetAdapterDemo extends StatelessWidget { Widget build(BuildContext context) { return Container( color: Colors.blue.withOpacity(0.1), - padding: EdgeInsets.all(10), - margin: EdgeInsets.all(10), + padding: const EdgeInsets.all(10), + margin: const EdgeInsets.all(10), child: Text(info), ); } diff --git a/lib/widget_system/widgets/Other/Table/node1_base.dart b/lib/widget_system/widgets/Other/Table/node1_base.dart index dab4708..a746a92 100644 --- a/lib/widget_system/widgets/Other/Table/node1_base.dart +++ b/lib/widget_system/widgets/Other/Table/node1_base.dart @@ -15,18 +15,20 @@ import 'package:flutter/material.dart'; // "【defaultVerticalAlignment】 : 单元格竖直方向对齐模式 【TableCellVerticalAlignment】", // } class CustomTable extends StatelessWidget { + const CustomTable({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { - var title = _ItemBean("单位称", "量纲", "单位", "单位名称", "单位符号"); - var m = _ItemBean("长度", "L", "1m", "米", "m"); - var kg = _ItemBean("质量", "M", "1Kg", "千克", "Kg"); - var s = _ItemBean("时间", "T", "1s", "秒", "s"); - var a = _ItemBean("安培", "Ι", "1A", "安培", "A"); - var k = _ItemBean("热力学温度", "θ", "1K", "开尔文", "K"); - var mol = _ItemBean("物质的量", "N", "1mol", "摩尔", "mol"); - var cd = _ItemBean("发光强度", "J", "1cd", "坎德拉", "cd"); + _ItemBean title = _ItemBean("单位称", "量纲", "单位", "单位名称", "单位符号"); + _ItemBean m = _ItemBean("长度", "L", "1m", "米", "m"); + _ItemBean kg = _ItemBean("质量", "M", "1Kg", "千克", "Kg"); + _ItemBean s = _ItemBean("时间", "T", "1s", "秒", "s"); + _ItemBean a = _ItemBean("安培", "Ι", "1A", "安培", "A"); + _ItemBean k = _ItemBean("热力学温度", "θ", "1K", "开尔文", "K"); + _ItemBean mol = _ItemBean("物质的量", "N", "1mol", "摩尔", "mol"); + _ItemBean cd = _ItemBean("发光强度", "J", "1cd", "坎德拉", "cd"); - var data = <_ItemBean>[title, m, kg, s, a, k, mol, cd]; + List<_ItemBean> data = [title, m, kg, s, a, k, mol, cd]; return SingleChildScrollView( scrollDirection: Axis.horizontal, @@ -46,7 +48,7 @@ class CustomTable extends StatelessWidget { Center( child: Text( item.name, - style: TextStyle(color: Colors.blue), + style: const TextStyle(color: Colors.blue), )), Padding( padding: const EdgeInsets.all(8.0), diff --git a/lib/widget_system/widgets/ProxyWidget/ButtonBarTheme/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/ButtonBarTheme/node1_base.dart index 014c72b..b800292 100644 --- a/lib/widget_system/widgets/ProxyWidget/ButtonBarTheme/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/ButtonBarTheme/node1_base.dart @@ -11,13 +11,15 @@ import 'package:flutter/material.dart'; // } class ButtonBarThemeDemo extends StatelessWidget { + const ButtonBarThemeDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return ButtonBarTheme( - child: TempButtonBar(), + child: const TempButtonBar(), data: ButtonBarTheme.of(context).copyWith( alignment: MainAxisAlignment.center, - buttonPadding: EdgeInsets.symmetric(horizontal: 6), + buttonPadding: const EdgeInsets.symmetric(horizontal: 6), overflowDirection: VerticalDirection.up, buttonMinWidth: 150, buttonHeight: 30, @@ -26,18 +28,20 @@ class ButtonBarThemeDemo extends StatelessWidget { } class TempButtonBar extends StatelessWidget { + const TempButtonBar({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return ButtonBar( alignment: MainAxisAlignment.center, children: [ RaisedButton( - color: Colors.blue, child: Text("1.Raised"), onPressed: () {}), - OutlineButton(child: Text("2.Outline"), onPressed: () {}), + color: Colors.blue, child: const Text("1.Raised"), onPressed: () {}), + OutlineButton(child: const Text("2.Outline"), onPressed: () {}), FlatButton( color: Colors.blue, onPressed: () {}, - child: Text("3.Flat"), + child: const Text("3.Flat"), ) ], ); diff --git a/lib/widget_system/widgets/ProxyWidget/ButtonTheme/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/ButtonTheme/node1_base.dart index 4f2166a..5e5f800 100644 --- a/lib/widget_system/widgets/ProxyWidget/ButtonTheme/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/ButtonTheme/node1_base.dart @@ -15,22 +15,24 @@ import 'package:flutter/material.dart'; class ButtonThemeDemo extends StatelessWidget { + const ButtonThemeDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return ButtonTheme( buttonColor: Colors.orange, splashColor: Colors.blue, minWidth: 40, - shape: CircleBorder( + shape: const CircleBorder( side: BorderSide(width: 2.0, color: Color(0xFFDFDFDF)), ), child: Wrap( spacing: 10, children: [ - RaisedButton(onPressed: (){},child: Icon(Icons.add)), - FlatButton(onPressed: (){},child: Icon(Icons.add)), - OutlineButton(onPressed: (){},child: Icon(Icons.add)), - MaterialButton(onPressed: (){},child: Icon(Icons.add)), + RaisedButton(onPressed: (){},child: const Icon(Icons.add)), + FlatButton(onPressed: (){},child: const Icon(Icons.add)), + OutlineButton(onPressed: (){},child: const Icon(Icons.add)), + MaterialButton(onPressed: (){},child: const Icon(Icons.add)), ], ), ); diff --git a/lib/widget_system/widgets/ProxyWidget/ChipTheme/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/ChipTheme/node1_base.dart index f2fe891..aa1ca82 100644 --- a/lib/widget_system/widgets/ProxyWidget/ChipTheme/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/ChipTheme/node1_base.dart @@ -10,6 +10,8 @@ import 'package:flutter/material.dart'; // "subtitle": "可指定ChipThemeData数据属性为【后代】的Chip类型组件设置默认样式,属性和Chip属性类似,如阴影、颜色、边距、形状、文字样式等。也可以用ChipTheme.of获取Chip的主题数据。", // } class ChipThemeDemo extends StatelessWidget { + const ChipThemeDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return ChipTheme( @@ -20,12 +22,14 @@ class ChipThemeDemo extends StatelessWidget { pressElevation: 5, elevation: 3, ), - child: CustomFilterChip(), + child: const CustomFilterChip(), ); } } class CustomFilterChip extends StatefulWidget { + const CustomFilterChip({Key? key}) : super(key: key); + @override _CustomFilterChipState createState() => _CustomFilterChipState(); } @@ -48,7 +52,7 @@ class _CustomFilterChipState extends State { children: map.keys.map((key) => _buildChild(key)).toList(), ), Container( - padding: EdgeInsets.all(10), + padding: const EdgeInsets.all(10), child: Text('您已选择: ${_selected.join(', ')}')), ], ); diff --git a/lib/widget_system/widgets/ProxyWidget/CupertinoUserInterfaceLevel/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/CupertinoUserInterfaceLevel/node1_base.dart index c34a93f..27cb99d 100644 --- a/lib/widget_system/widgets/ProxyWidget/CupertinoUserInterfaceLevel/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/CupertinoUserInterfaceLevel/node1_base.dart @@ -15,10 +15,11 @@ import 'package:flutter/material.dart'; // } class CupertinoUserInterfaceLevelDemo extends StatelessWidget { + const CupertinoUserInterfaceLevelDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { - - return CupertinoUserInterfaceLevel( + return const CupertinoUserInterfaceLevel( data: CupertinoUserInterfaceLevelData.elevated, child: LevelShower() ); @@ -27,6 +28,8 @@ class CupertinoUserInterfaceLevelDemo extends StatelessWidget { } class LevelShower extends StatelessWidget { + const LevelShower({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { CupertinoUserInterfaceLevelData data = CupertinoUserInterfaceLevel.of(context); diff --git a/lib/widget_system/widgets/ProxyWidget/DefaultAssetBundle/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/DefaultAssetBundle/node1_base.dart index 0874404..3968806 100644 --- a/lib/widget_system/widgets/ProxyWidget/DefaultAssetBundle/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/DefaultAssetBundle/node1_base.dart @@ -15,6 +15,8 @@ import 'dart:ui' as ui; // "我们可以定义自己的 DefaultAssetBundle 来供后续节点使用,也可以直接使用默认的。该案例演示通过框架提供的 DefaultAssetBundle 加载一张资源图片进行显示。", // } class DefaultAssetBundleDemo extends StatefulWidget { + const DefaultAssetBundleDemo({Key? key}) : super(key: key); + @override _DefaultAssetBundleDemoState createState() => _DefaultAssetBundleDemoState(); } @@ -34,8 +36,8 @@ class _DefaultAssetBundleDemoState extends State { width: 150, height: 150, color: Colors.blue.withOpacity(0.1), - padding: EdgeInsets.all(10), - margin: EdgeInsets.all(10), + padding: const EdgeInsets.all(10), + margin: const EdgeInsets.all(10), child: _image==null?Container():RawImage(image: _image,fit: BoxFit.cover,), ); } diff --git a/lib/widget_system/widgets/ProxyWidget/DefaultTextStyle/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/DefaultTextStyle/node1_base.dart index f7d5634..2a4090f 100644 --- a/lib/widget_system/widgets/ProxyWidget/DefaultTextStyle/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/DefaultTextStyle/node1_base.dart @@ -14,16 +14,18 @@ import 'package:flutter/material.dart'; // "其功能是: 设置默认的文字样式应用于【后代组件】,注意后代组件也可以指定自身的样式", // } class DefaultTextStyleDemo extends StatelessWidget { + const DefaultTextStyleDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return DefaultTextStyle( - style: TextStyle( + style: const TextStyle( fontSize: 18, color: Colors.blue, decoration: TextDecoration.underline), child: Wrap( spacing: 5, - children: [ + children: const[ Text("Hello,",), FlutterLogo(), Text("Flutter",style: TextStyle(color: Colors.red),), diff --git a/lib/widget_system/widgets/ProxyWidget/Directionality/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/Directionality/node1_base.dart index 985112d..734e9e7 100644 --- a/lib/widget_system/widgets/ProxyWidget/Directionality/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/Directionality/node1_base.dart @@ -11,6 +11,8 @@ import 'package:flutter/material.dart'; // "【child】 : 子组件 【Widget】", // } class DirectionalityDemo extends StatefulWidget { + const DirectionalityDemo({Key? key}) : super(key: key); + @override _DirectionalityDemoState createState() => _DirectionalityDemoState(); } @@ -23,16 +25,16 @@ class _DirectionalityDemoState extends State { return Directionality( textDirection: _textDirection, child: Container( - padding: EdgeInsets.all(8), + padding: const EdgeInsets.all(8), width: 250, color: Colors.grey.withAlpha(33), child: Column( mainAxisSize: MainAxisSize.min, children: [ - Text( + const Text( 'A widget that determines the ambient directionality of text and text direction sensitive render objects.'), _buildSwitch(), - Text( + const Text( 'The text direction from the closest instance of this class that encloses the given context.'), ], ), @@ -40,8 +42,7 @@ class _DirectionalityDemoState extends State { ); } - Widget _buildSwitch() { - return Row( + Widget _buildSwitch() => Row( children: [ Switch( value: _textDirection == TextDirection.rtl, @@ -54,9 +55,8 @@ class _DirectionalityDemoState extends State { ), Text( _textDirection.toString(), - style: TextStyle(color: Colors.blue, fontSize: 18), + style: const TextStyle(color: Colors.blue, fontSize: 18), ) ], ); - } } diff --git a/lib/widget_system/widgets/ProxyWidget/DropdownButtonHideUnderline/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/DropdownButtonHideUnderline/node1_base.dart index ecd30fb..b331df3 100644 --- a/lib/widget_system/widgets/ProxyWidget/DropdownButtonHideUnderline/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/DropdownButtonHideUnderline/node1_base.dart @@ -11,6 +11,8 @@ import 'package:flutter/material.dart'; // "【child】 : 子组件 【Widget】\n", // } class CustomDropDownButtonHideUnderline extends StatefulWidget { + const CustomDropDownButtonHideUnderline({Key? key}) : super(key: key); + @override _CustomDropDownButtonHideUnderlineState createState() => _CustomDropDownButtonHideUnderlineState(); @@ -19,20 +21,20 @@ class CustomDropDownButtonHideUnderline extends StatefulWidget { class _CustomDropDownButtonHideUnderlineState extends State { Color _color = Colors.red; - final List _colors = [ + final List _colors = const[ Colors.red, Colors.yellow, Colors.blue, Colors.green ]; - final List _info = ["红色", "黄色", "蓝色", "绿色"]; + final List _info = const["红色", "黄色", "蓝色", "绿色"]; @override Widget build(BuildContext context) { return Wrap( - children: [ + children: [ Container( - margin: EdgeInsets.symmetric(horizontal: 20), + margin: const EdgeInsets.symmetric(horizontal: 20), width: 50, height: 50, color: _color, diff --git a/lib/widget_system/widgets/ProxyWidget/Expanded/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/Expanded/node1_base.dart index fe225c6..94cbeba 100644 --- a/lib/widget_system/widgets/ProxyWidget/Expanded/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/Expanded/node1_base.dart @@ -14,6 +14,8 @@ // "【flex】 : 剩余空间分配占比 【int】", // } class CustomExpended extends StatefulWidget { + const CustomExpended({Key? key}) : super(key: key); + @override _CustomExpendedState createState() => _CustomExpendedState(); } diff --git a/lib/widget_system/widgets/ProxyWidget/Flexible/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/Flexible/node1_base.dart index 08616f5..4e3bc43 100644 --- a/lib/widget_system/widgets/ProxyWidget/Flexible/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/Flexible/node1_base.dart @@ -14,6 +14,8 @@ import 'package:flutter/material.dart'; // "【flex】 : 剩余空间分配占比 【int】", // } class CustomFlexible extends StatefulWidget { + const CustomFlexible({Key? key}) : super(key: key); + @override _CustomFlexibleState createState() => _CustomFlexibleState(); } @@ -28,7 +30,7 @@ class _CustomFlexibleState extends State { Container( color: Colors.grey.withAlpha(33), width: _width, - padding: EdgeInsets.all(8.0), + padding: const EdgeInsets.all(8.0), child: Row( children: [ Flexible( @@ -37,7 +39,7 @@ class _CustomFlexibleState extends State { alignment: Alignment.center, height: 50, color: Colors.red, - child: Text( + child: const Text( 'flex=2', style: TextStyle(color: Colors.white), ), @@ -49,7 +51,7 @@ class _CustomFlexibleState extends State { alignment: Alignment.center, height: 50, color: Colors.blue, - child: Text( + child: const Text( 'flex=3', style: TextStyle(color: Colors.white), ), @@ -59,13 +61,13 @@ class _CustomFlexibleState extends State { flex: 4, fit: _loose?FlexFit.loose:FlexFit.tight, child: Container( - constraints: BoxConstraints(maxWidth: 60), + constraints: const BoxConstraints(maxWidth: 60), alignment: Alignment.center, height: 50, color: Colors.green, child: Text( 'flex=4 \nfit:${_loose?'loose':'tight'}', - style: TextStyle(color: Colors.white), + style: const TextStyle(color: Colors.white), ), ), ) @@ -75,9 +77,8 @@ class _CustomFlexibleState extends State { ]); } - Widget _buildOp() { - return Row( - children: [ + Widget _buildOp() => Row( + children: [ Switch( value: _loose, onChanged: (v) => setState(() => _loose = v)), @@ -91,5 +92,4 @@ class _CustomFlexibleState extends State { ), ], ); - } } diff --git a/lib/widget_system/widgets/ProxyWidget/IconTheme/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/IconTheme/node1_base.dart index 1307df5..bbec3bd 100644 --- a/lib/widget_system/widgets/ProxyWidget/IconTheme/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/IconTheme/node1_base.dart @@ -12,17 +12,19 @@ import 'package:flutter/material.dart'; // "可以通过IconTheme.of获取图标主题数据,也可以为IconTheme【后代】的图标组件设置默认样式,包括颜色、透明度、尺寸。", // } class IconThemeDemo extends StatelessWidget { + const IconThemeDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return IconTheme( - data: IconThemeData( + data: const IconThemeData( color: Colors.purple, opacity: 1.0, size: 30 ), child: Wrap( spacing: 10, - children: [ + children: const[ Icon(Icons.add), Icon(Icons.ac_unit), Icon(Icons.g_translate), diff --git a/lib/widget_system/widgets/ProxyWidget/InheritedTheme/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/InheritedTheme/node1_base.dart index da33c08..2a21759 100644 --- a/lib/widget_system/widgets/ProxyWidget/InheritedTheme/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/InheritedTheme/node1_base.dart @@ -15,10 +15,12 @@ import 'package:flutter/material.dart'; // } class InheritedThemeDemo extends StatelessWidget { + const InheritedThemeDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { - return DefaultTextStyle( + return const DefaultTextStyle( style: TextStyle(fontSize: 24, color: Colors.blue), child: TestBody(), ); @@ -26,6 +28,8 @@ class InheritedThemeDemo extends StatelessWidget { } class TestBody extends StatelessWidget { + const TestBody({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { @@ -33,10 +37,10 @@ class TestBody extends StatelessWidget { onTap: () => _toNextPage(context), child: Container( height: 60, - margin: EdgeInsets.only(left: 40,right: 40), + margin: const EdgeInsets.only(left: 40,right: 40), alignment: Alignment.center, color: Theme.of(context).primaryColor.withOpacity(0.1), - child: Text('InheritedTheme'))); + child: const Text('InheritedTheme'))); } void _toNextPage(BuildContext context) { diff --git a/lib/widget_system/widgets/ProxyWidget/InheritedWidget/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/InheritedWidget/node1_base.dart index 76f98d9..2a0d187 100644 --- a/lib/widget_system/widgets/ProxyWidget/InheritedWidget/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/InheritedWidget/node1_base.dart @@ -20,24 +20,28 @@ class InheritedWidgetDemo extends StatelessWidget { 'InheritedWidget 是一个抽象类,不可以直接使用。可以自定义对应共享数据的子类,如这里的通过 InfoInheritedWidget 实现:当前这段话可以在任意子树节点上下文获取。' '一般都会定义一个 XXX.of(context) 的方法来获取数据,如 MediaQuery.of,Theme.of 等。'; + const InheritedWidgetDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return InfoInheritedWidget( info: info, - child: InfoWidget(), + child: const InfoWidget(), ); } } class InfoWidget extends StatelessWidget { + const InfoWidget({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { String info = InfoInheritedWidget.of(context)?.info??''; return Container( color: Colors.blue.withOpacity(0.1), - padding: EdgeInsets.all(10), - margin: EdgeInsets.all(10), + padding: const EdgeInsets.all(10), + margin: const EdgeInsets.all(10), child: Text(info), ); } @@ -46,7 +50,7 @@ class InfoWidget extends StatelessWidget { class InfoInheritedWidget extends InheritedWidget { final String info; - InfoInheritedWidget({Key? key,required this.info, required Widget child}) + const InfoInheritedWidget({Key? key,required this.info, required Widget child}) : super(key: key, child: child); @override diff --git a/lib/widget_system/widgets/ProxyWidget/KeepAlive/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/KeepAlive/node1_base.dart index af26994..bbe0d27 100644 --- a/lib/widget_system/widgets/ProxyWidget/KeepAlive/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/KeepAlive/node1_base.dart @@ -16,6 +16,7 @@ import 'package:flutter/material.dart'; // } class KeepAliveDemo extends StatelessWidget { + KeepAliveDemo({Key? key}) : super(key: key); final List data = [ Colors.purple[50]!, @@ -42,7 +43,7 @@ class KeepAliveDemo extends StatelessWidget { @override Widget build(BuildContext context) { - return Container( + return SizedBox( height: 300, child: ListView.builder( itemCount: data.length, @@ -59,7 +60,11 @@ class ColorBox extends StatefulWidget { final Color color; final int index; - ColorBox({Key? key,required this.color,required this.index}) : super(key: key); + const ColorBox({ + Key? key, + required this.color, + required this.index, + }) : super(key: key); @override _ColorBoxState createState() => _ColorBoxState(); @@ -91,7 +96,7 @@ class _ColorBoxState extends State with AutomaticKeepAliveClientMixin color: widget.color, child: Row( children: [ - SizedBox(width: 60,), + const SizedBox(width: 60), Checkbox( value: _checked, onChanged: (bool? v) { @@ -102,7 +107,7 @@ class _ColorBoxState extends State with AutomaticKeepAliveClientMixin ), Text( "index ${widget.index}: ${colorString(widget.color)}", - style: TextStyle(color: Colors.white, shadows: [ + style: const TextStyle(color: Colors.white, shadows: [ Shadow(color: Colors.black, offset: Offset(.5, .5), blurRadius: 2) ]), ), diff --git a/lib/widget_system/widgets/ProxyWidget/LayoutId/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/LayoutId/node1_base.dart index 1bd5ee7..6ceb70a 100644 --- a/lib/widget_system/widgets/ProxyWidget/LayoutId/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/LayoutId/node1_base.dart @@ -15,6 +15,8 @@ import 'package:flutter/material.dart'; class LayoutIdDemo extends StatelessWidget { + const LayoutIdDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return Container( @@ -23,13 +25,13 @@ class LayoutIdDemo extends StatelessWidget { color: Colors.grey.withAlpha(33), child: CustomMultiChildLayout( delegate: CornerCustomMultiChildLayout( - padding:EdgeInsets.only(left: 10,top: 5,right: 10,bottom: 5), + padding:const EdgeInsets.only(left: 10,top: 5,right: 10,bottom: 5), ), children: [ - LayoutId(id: CornerType.topLeft, child: Box50(Colors.red)), - LayoutId(id: CornerType.topRight, child: Box50(Colors.yellow)), - LayoutId(id: CornerType.bottomLeft, child: Box50(Colors.blue)), - LayoutId(id: CornerType.bottomRight, child: Box50(Colors.green)), + LayoutId(id: CornerType.topLeft, child: const Box50(Colors.red)), + LayoutId(id: CornerType.topRight, child: const Box50(Colors.yellow)), + LayoutId(id: CornerType.bottomLeft, child: const Box50(Colors.blue)), + LayoutId(id: CornerType.bottomRight, child: const Box50(Colors.green)), ], ), ); @@ -39,7 +41,7 @@ class LayoutIdDemo extends StatelessWidget { // 50 颜射盒 class Box50 extends StatelessWidget { final Color color; - Box50(this.color); + const Box50(this.color, {Key? key}) : super(key: key); @override Widget build(BuildContext context) { @@ -87,6 +89,5 @@ class CornerCustomMultiChildLayout extends MultiChildLayoutDelegate{ @override bool shouldRelayout(CornerCustomMultiChildLayout oldDelegate) => oldDelegate.padding!=padding; - } diff --git a/lib/widget_system/widgets/ProxyWidget/ListTileTheme/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/ListTileTheme/node1_base.dart index a5a032b..f18b56c 100644 --- a/lib/widget_system/widgets/ProxyWidget/ListTileTheme/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/ListTileTheme/node1_base.dart @@ -11,13 +11,15 @@ import 'package:flutter/material.dart'; // } class ListTileThemeDemo extends StatelessWidget { + const ListTileThemeDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return ListTileTheme( dense: false, style: ListTileStyle.list, selectedColor: Colors.blue, - contentPadding: EdgeInsets.only(left: 15,right: 15,top: 5,bottom: 5), + contentPadding: const EdgeInsets.only(left: 15,right: 15,top: 5,bottom: 5), iconColor: Colors.purple, textColor: Colors.orange, child: _ListTileSimple(), @@ -36,14 +38,14 @@ class _ListTileSimpleState extends State<_ListTileSimple> { @override Widget build(BuildContext context) { return Container( - margin: EdgeInsets.all(10), + margin: const EdgeInsets.all(10), color: Colors.grey.withAlpha(22), child: ListTile( leading: Image.asset("assets/images/icon_head.webp"), selected: _selected, - title: Text("以梦为马"), - subtitle: Text("海子"), - trailing: Icon(Icons.more_vert), + title: const Text("以梦为马"), + subtitle: const Text("海子"), + trailing: const Icon(Icons.more_vert), onTap: () => setState(() => _selected = !_selected), ), ); diff --git a/lib/widget_system/widgets/ProxyWidget/MaterialBannerTheme/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/MaterialBannerTheme/node1_base.dart index e535791..f5e1d7c 100644 --- a/lib/widget_system/widgets/ProxyWidget/MaterialBannerTheme/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/MaterialBannerTheme/node1_base.dart @@ -10,14 +10,16 @@ import 'package:flutter/material.dart'; // "subtitle": "可指定MaterialBannerThemeData数据属性为【后代】的MaterialBanner组件设置默认样式,如背景色、边距、文字样式等。也可以用MaterialBannerTheme.of获取MaterialBanner的主题数据。", // } class MaterialBannerThemeDemo extends StatelessWidget { + const MaterialBannerThemeDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return MaterialBannerTheme( data: MaterialBannerTheme.of(context).copyWith( backgroundColor: Colors.purple, - padding: EdgeInsetsDirectional.only(start: 16.0, top: 2.0,end: 2), - leadingPadding:EdgeInsetsDirectional.only(end: 16.0) , - contentTextStyle: TextStyle(color: Colors.white), + padding: const EdgeInsetsDirectional.only(start: 16.0, top: 2.0,end: 2), + leadingPadding:const EdgeInsetsDirectional.only(end: 16.0) , + contentTextStyle: const TextStyle(color: Colors.white), ), child: _MaterialBannerDemo(), ); @@ -35,12 +37,12 @@ class _MaterialBannerDemo extends StatelessWidget { return Column( children: [MaterialBanner( content: Text(info), - leading: Icon(Icons.warning, color: Colors.yellow), + leading: const Icon(Icons.warning, color: Colors.yellow), actions: [ RaisedButton( color: Colors.white, onPressed: () {}, - child: Text( + child: const Text( 'I KNOW', style: TextStyle( color: Colors.purple, @@ -52,7 +54,7 @@ class _MaterialBannerDemo extends StatelessWidget { RaisedButton( color: Colors.white, onPressed: () {}, - child: Text( + child: const Text( 'I IGNORE', style: TextStyle( color: Colors.purple, diff --git a/lib/widget_system/widgets/ProxyWidget/MediaQuery/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/MediaQuery/node1_base.dart index 818b2e1..5a3a73d 100644 --- a/lib/widget_system/widgets/ProxyWidget/MediaQuery/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/MediaQuery/node1_base.dart @@ -13,10 +13,12 @@ import 'package:flutter/material.dart'; // } class CustomMediaQuery extends StatelessWidget { + const CustomMediaQuery({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { - var queryData = MediaQuery.of(context); - var data = { + MediaQueryData queryData = MediaQuery.of(context); + Map data = { "size": queryData.size, "devicePixelRatio": queryData.devicePixelRatio.toStringAsFixed(1), "textScaleFactor": queryData.textScaleFactor.toStringAsFixed(1), @@ -52,16 +54,16 @@ class CustomMediaQuery extends StatelessWidget { children: [ Text( e, - style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold), + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold), ), Text( data[e].toString(), - style: TextStyle(fontSize: 16, color: Colors.orange), + style: const TextStyle(fontSize: 16, color: Colors.orange), ) ], ), ), - Divider( + const Divider( height: 1, ) ], diff --git a/lib/widget_system/widgets/ProxyWidget/ParentDataWidget/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/ParentDataWidget/node1_base.dart index 192323a..d566997 100644 --- a/lib/widget_system/widgets/ProxyWidget/ParentDataWidget/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/ParentDataWidget/node1_base.dart @@ -14,6 +14,8 @@ import 'package:flutter/material.dart'; // } class ParentDataWidgetDemo extends StatelessWidget { + const ParentDataWidgetDemo({Key? key}) : super(key: key); + final String info = 'ParentDataWidget 是一个抽象类,不能直接使用,它拥有 ParentData 子类型的泛型,该泛型会限定该组件的适应场景。' '如 Positioned 组件继承自 ParentDataWidget,就说明 Positioned 的上层组件必须使用 Stack 族组件。' @@ -23,8 +25,8 @@ class ParentDataWidgetDemo extends StatelessWidget { Widget build(BuildContext context) { return Container( color: Colors.blue.withOpacity(0.1), - padding: EdgeInsets.all(10), - margin: EdgeInsets.all(10), + padding: const EdgeInsets.all(10), + margin: const EdgeInsets.all(10), child: Text(info), ); } diff --git a/lib/widget_system/widgets/ProxyWidget/PopupMenuTheme/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/PopupMenuTheme/node1_base.dart index 6a8837c..96f01b2 100644 --- a/lib/widget_system/widgets/ProxyWidget/PopupMenuTheme/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/PopupMenuTheme/node1_base.dart @@ -10,14 +10,16 @@ import 'package:flutter/material.dart'; // "subtitle": "可指定PopupMenuThemeData数据属性为【后代】的PopupMenuButton组件设置默认样式,如形状、影深、颜色、文字样式等。也可以用PopupMenuTheme.of获取PopupMenu的主题数据。", // } class PopupMenuThemeDemo extends StatelessWidget { + const PopupMenuThemeDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return PopupMenuTheme( data: PopupMenuTheme.of(context).copyWith( color: Colors.orangeAccent, elevation: 1, - textStyle: TextStyle(color: Colors.white), - shape: RoundedRectangleBorder( + textStyle: const TextStyle(color: Colors.white), + shape: const RoundedRectangleBorder( borderRadius: BorderRadius.only( topLeft: Radius.circular(20), bottomRight: Radius.circular(20), @@ -36,7 +38,7 @@ class _PopupMenuButtonSimple extends StatefulWidget { } class _PopupMenuButtonSimpleState extends State<_PopupMenuButtonSimple> { - final map = { + final Map map = { "关于": Icons.info_outline, "帮助": Icons.help_outline, "反馈": Icons.add_comment, @@ -46,7 +48,7 @@ class _PopupMenuButtonSimpleState extends State<_PopupMenuButtonSimple> { Widget build(BuildContext context) { return PopupMenuButton( itemBuilder: (context) => buildItems(), - offset: Offset(0, 50), + offset: const Offset(0, 50), onSelected: print, onCanceled: () => print('onCanceled'), ); diff --git a/lib/widget_system/widgets/ProxyWidget/Positioned/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/Positioned/node1_base.dart index 0e249eb..16963ae 100644 --- a/lib/widget_system/widgets/ProxyWidget/Positioned/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/Positioned/node1_base.dart @@ -16,27 +16,29 @@ import 'package:flutter/material.dart'; // "【bottom】 : 到父底距离 【double】", // } class CustomPositioned extends StatelessWidget { + const CustomPositioned({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { - var yellowBox = Container( + Widget yellowBox = Container( color: Colors.yellow, height: 100, width: 100, ); - var redBox = Container( + Widget redBox = Container( color: Colors.red, height: 90, width: 90, ); - var greenBox = Container( + Widget greenBox = Container( color: Colors.green, height: 80, width: 80, ); - var cyanBox = Container( + Widget cyanBox = Container( color: Colors.cyanAccent, height: 70, width: 70, @@ -47,7 +49,7 @@ class CustomPositioned extends StatelessWidget { height: 120, color: Colors.grey.withAlpha(33), child: Stack( - children: [ + children: [ yellowBox, redBox, Positioned(top: 20, left: 20, child: greenBox), diff --git a/lib/widget_system/widgets/ProxyWidget/PrimaryScrollController/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/PrimaryScrollController/node1_base.dart index 45664c0..a831fe3 100644 --- a/lib/widget_system/widgets/ProxyWidget/PrimaryScrollController/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/PrimaryScrollController/node1_base.dart @@ -13,6 +13,8 @@ import 'package:flutter/material.dart'; // "【child】 : 子组件 【Widget】", // } class PrimaryScrollControllerDemo extends StatelessWidget { + const PrimaryScrollControllerDemo({Key? key}) : super(key: key); + final String info = 'PrimaryScrollController 是 InheritedWidget 子类,也就说明它可以为子树组件提供某些默认数据,' '子树可以通过 context 来获取上层该组件的提供 ScrollController 对象。\n' @@ -23,13 +25,12 @@ class PrimaryScrollControllerDemo extends StatelessWidget { @override Widget build(BuildContext context) { - ScrollController? label = PrimaryScrollController.of(context); return Container( color: Colors.blue.withOpacity(0.1), - padding: EdgeInsets.all(10), - margin: EdgeInsets.all(10), + padding: const EdgeInsets.all(10), + margin: const EdgeInsets.all(10), child: Text(info+"当前其持有的滑动控制器对象: $label"), ); } diff --git a/lib/widget_system/widgets/ProxyWidget/ScrollConfiguration/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/ScrollConfiguration/node1_base.dart index b753b16..b9d4055 100644 --- a/lib/widget_system/widgets/ProxyWidget/ScrollConfiguration/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/ScrollConfiguration/node1_base.dart @@ -13,7 +13,9 @@ import 'package:flutter/material.dart'; // " 可以使用ScrollConfiguration让ListView无蓝色阴影", // } class CustomScrollConfiguration extends StatelessWidget { - final data = [ + CustomScrollConfiguration({Key? key}) : super(key: key); + + final List data = [ Colors.cyan[50]!, Colors.cyan[100]!, Colors.cyan[200]!, @@ -26,9 +28,10 @@ class CustomScrollConfiguration extends StatelessWidget { Colors.cyan[900]!, ]; + @override Widget build(BuildContext context) { - return Container( + return SizedBox( height: 200, child: ScrollConfiguration( behavior: NoScrollBehavior(), child: _buildListView()), @@ -36,7 +39,7 @@ class CustomScrollConfiguration extends StatelessWidget { } Widget _buildListView() => ListView( - padding: EdgeInsets.symmetric(horizontal: 5), + padding: const EdgeInsets.symmetric(horizontal: 5), children: data .map((color) => Container( alignment: Alignment.center, @@ -45,7 +48,7 @@ class CustomScrollConfiguration extends StatelessWidget { color: color, child: Text( colorString(color), - style: TextStyle(color: Colors.white, shadows: [ + style: const TextStyle(color: Colors.white, shadows: [ Shadow( color: Colors.black, offset: Offset(.5, .5), diff --git a/lib/widget_system/widgets/ProxyWidget/SliderTheme/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/SliderTheme/node1_base.dart index 5451f08..dedb41a 100644 --- a/lib/widget_system/widgets/ProxyWidget/SliderTheme/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/SliderTheme/node1_base.dart @@ -14,12 +14,14 @@ import 'package:flutter/material.dart'; // } class SliderThemeDemo extends StatefulWidget { + const SliderThemeDemo({Key? key}) : super(key: key); + @override _SliderThemeDemoState createState() => _SliderThemeDemoState(); } class _SliderThemeDemoState extends State { - var _bliss = 0.5; + double _bliss = 0.5; @override Widget build(BuildContext context) { diff --git a/lib/widget_system/widgets/ProxyWidget/SliderTheme/node2_diy.dart b/lib/widget_system/widgets/ProxyWidget/SliderTheme/node2_diy.dart index 71af422..bbe53b1 100644 --- a/lib/widget_system/widgets/ProxyWidget/SliderTheme/node2_diy.dart +++ b/lib/widget_system/widgets/ProxyWidget/SliderTheme/node2_diy.dart @@ -16,17 +16,18 @@ import 'package:flutter/material.dart'; // } class DIYSliderTheme extends StatefulWidget { + const DIYSliderTheme({Key? key}) : super(key: key); + @override _DIYSliderThemeState createState() => _DIYSliderThemeState(); } class _DIYSliderThemeState extends State { - var _bliss = 0.5; + double _bliss = 0.5; @override Widget build(BuildContext context) { final ThemeData theme = Theme.of(context); - return SliderTheme( data: theme.sliderTheme.copyWith( activeTrackColor: Colors.deepPurple, @@ -74,17 +75,20 @@ class _CustomThumbShape extends SliderComponentShape { ); @override - void paint(PaintingContext context, Offset center, - {required Animation activationAnimation, - required Animation enableAnimation, - required bool isDiscrete, - required TextPainter labelPainter, - required RenderBox parentBox, - required SliderThemeData sliderTheme, - required TextDirection textDirection, - required double value, - required double textScaleFactor, - required Size sizeWithOverflow}) { + void paint( + PaintingContext context, + Offset center, { + required Animation activationAnimation, + required Animation enableAnimation, + required bool isDiscrete, + required TextPainter labelPainter, + required RenderBox parentBox, + required SliderThemeData sliderTheme, + required TextDirection textDirection, + required double value, + required double textScaleFactor, + required Size sizeWithOverflow, + }) { final Canvas canvas = context.canvas; final ColorTween colorTween = ColorTween( begin: sliderTheme.disabledThumbColor, diff --git a/lib/widget_system/widgets/ProxyWidget/TableCell/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/TableCell/node1_base.dart index 3747d32..d9744cf 100644 --- a/lib/widget_system/widgets/ProxyWidget/TableCell/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/TableCell/node1_base.dart @@ -13,18 +13,20 @@ import 'package:flutter/material.dart'; // } class TableCellDemo extends StatelessWidget { + const TableCellDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { - var title = _ItemBean("单位称", "量纲", "单位", "单位名称", "单位符号"); - var m = _ItemBean("长度", "L", "1m", "米", "m"); - var kg = _ItemBean("质量", "M", "1Kg", "千克", "Kg"); - var s = _ItemBean("时间", "T", "1s", "秒", "s"); - var a = _ItemBean("安培", "Ι", "1A", "安培", "A"); - var k = _ItemBean("热力学温度", "θ", "1K", "开尔文", "K"); - var mol = _ItemBean("物质的量", "N", "1mol", "摩尔", "mol"); - var cd = _ItemBean("发光强度", "J", "1cd", "坎德拉", "cd"); + _ItemBean title = _ItemBean("单位称", "量纲", "单位", "单位名称", "单位符号"); + _ItemBean m = _ItemBean("长度", "L", "1m", "米", "m"); + _ItemBean kg = _ItemBean("质量", "M", "1Kg", "千克", "Kg"); + _ItemBean s = _ItemBean("时间", "T", "1s", "秒", "s"); + _ItemBean a = _ItemBean("安培", "Ι", "1A", "安培", "A"); + _ItemBean k = _ItemBean("热力学温度", "θ", "1K", "开尔文", "K"); + _ItemBean mol = _ItemBean("物质的量", "N", "1mol", "摩尔", "mol"); + _ItemBean cd = _ItemBean("发光强度", "J", "1cd", "坎德拉", "cd"); - var data = <_ItemBean>[title, m, kg, s, a, k, mol, cd]; + List<_ItemBean> data = [title, m, kg, s, a, k, mol, cd]; return SingleChildScrollView( scrollDirection: Axis.horizontal, @@ -45,7 +47,7 @@ class TableCellDemo extends StatelessWidget { verticalAlignment: TableCellVerticalAlignment.bottom, child: Text( item.name, - style: TextStyle(color: Colors.blue), + style: const TextStyle(color: Colors.blue), )), TableCell( verticalAlignment: TableCellVerticalAlignment.baseline, @@ -58,7 +60,7 @@ class TableCellDemo extends StatelessWidget { child: Text(item.unitName)), TableCell( verticalAlignment: TableCellVerticalAlignment.middle, - child: Container(height: 30, child: Text(item.unit)), + child: SizedBox(height: 30, child: Text(item.unit)), ), ])) .toList(), diff --git a/lib/widget_system/widgets/ProxyWidget/ToggleButtonsTheme/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/ToggleButtonsTheme/node1_base.dart index 3d0d16f..e43562d 100644 --- a/lib/widget_system/widgets/ProxyWidget/ToggleButtonsTheme/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/ToggleButtonsTheme/node1_base.dart @@ -11,6 +11,8 @@ import 'package:flutter/material.dart'; // } class ToggleButtonsThemeDemo extends StatelessWidget { + const ToggleButtonsThemeDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return ToggleButtonsTheme( @@ -40,7 +42,7 @@ class _ToggleButtonsSimpleState extends State<_ToggleButtonsSimple> { @override Widget build(BuildContext context) { return ToggleButtons( - children: [ + children: const[ Icon(Icons.skip_previous), Icon(Icons.pause), Icon(Icons.skip_next), diff --git a/lib/widget_system/widgets/ProxyWidget/TooltipTheme/node1_base.dart b/lib/widget_system/widgets/ProxyWidget/TooltipTheme/node1_base.dart index a4a7136..931a177 100644 --- a/lib/widget_system/widgets/ProxyWidget/TooltipTheme/node1_base.dart +++ b/lib/widget_system/widgets/ProxyWidget/TooltipTheme/node1_base.dart @@ -11,19 +11,21 @@ import 'package:flutter/material.dart'; // } class TooltipThemeDemo extends StatelessWidget { + const TooltipThemeDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return TooltipTheme( - child: TempTooltip(), + child: const TempTooltip(), data: TooltipTheme.of(context).copyWith( preferBelow: false, - padding: EdgeInsets.all(5), + padding: const EdgeInsets.all(5), verticalOffset: 20, - margin: EdgeInsets.all(2), - textStyle: TextStyle( - color: Colors.red, - shadows: [Shadow(color: Colors.white, offset: Offset(1, 1))]), - decoration: BoxDecoration(boxShadow: [ + margin: const EdgeInsets.all(2), + textStyle: const TextStyle(color: Colors.red, shadows: [ + Shadow(color: Colors.white, offset: Offset(1, 1)), + ]), + decoration: const BoxDecoration(boxShadow: [ BoxShadow( color: Colors.orangeAccent, offset: Offset(1, 1), @@ -33,17 +35,15 @@ class TooltipThemeDemo extends StatelessWidget { } class TempTooltip extends StatelessWidget { + const TempTooltip({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Tooltip( - message: "天王盖地虎", - child: Icon(Icons.info_outline)), - Tooltip( - message: "宝塔镇河妖", - child: Icon(Icons.info_outline)), + children: const [ + Tooltip(message: "天王盖地虎", child: Icon(Icons.info_outline)), + Tooltip(message: "宝塔镇河妖", child: Icon(Icons.info_outline)), ], ); } diff --git a/lib/widget_system/widgets/SingleChildRenderObjectWidget/AnnotatedRegion/node1_base.dart b/lib/widget_system/widgets/SingleChildRenderObjectWidget/AnnotatedRegion/node1_base.dart index 6352d61..a9c5b69 100644 --- a/lib/widget_system/widgets/SingleChildRenderObjectWidget/AnnotatedRegion/node1_base.dart +++ b/lib/widget_system/widgets/SingleChildRenderObjectWidget/AnnotatedRegion/node1_base.dart @@ -25,7 +25,7 @@ class AnnotatedRegionDemo extends StatelessWidget { child: ElevatedButton( onPressed: (){ Navigator.push(context, - MaterialPageRoute(builder: (context) => AnnotatedRegionTestPage()), + MaterialPageRoute(builder: (context) => const AnnotatedRegionTestPage()), ); }, child: const Text("进入 AnnotatedRegion 测试页"), diff --git a/lib/widget_system/widgets/SingleChildRenderObjectWidget/ColorFiltered/node1_base.dart b/lib/widget_system/widgets/SingleChildRenderObjectWidget/ColorFiltered/node1_base.dart index 18fd9c1..ac813d9 100644 --- a/lib/widget_system/widgets/SingleChildRenderObjectWidget/ColorFiltered/node1_base.dart +++ b/lib/widget_system/widgets/SingleChildRenderObjectWidget/ColorFiltered/node1_base.dart @@ -47,7 +47,7 @@ class _CustomColorFilteredState extends State { ); } - Widget _buildChild(m) => Container( + Widget _buildChild(m) => SizedBox( width: 58, height: 58, child: ColorFiltered( diff --git a/lib/widget_system/widgets/SingleChildRenderObjectWidget/ConstrainedBox/node1_base.dart b/lib/widget_system/widgets/SingleChildRenderObjectWidget/ConstrainedBox/node1_base.dart index 2995408..e0be072 100644 --- a/lib/widget_system/widgets/SingleChildRenderObjectWidget/ConstrainedBox/node1_base.dart +++ b/lib/widget_system/widgets/SingleChildRenderObjectWidget/ConstrainedBox/node1_base.dart @@ -63,7 +63,7 @@ class _CustomConstrainedBoxState extends State { padding: const EdgeInsets.all(18.0), child: TextField( decoration: const InputDecoration( - border: const OutlineInputBorder(), + border: OutlineInputBorder(), hintText: '请输入', ), onChanged: (v) { diff --git a/lib/widget_system/widgets/SingleChildRenderObjectWidget/CustomPaint/node1_clock.dart b/lib/widget_system/widgets/SingleChildRenderObjectWidget/CustomPaint/node1_clock.dart index 597ecda..92deaab 100644 --- a/lib/widget_system/widgets/SingleChildRenderObjectWidget/CustomPaint/node1_clock.dart +++ b/lib/widget_system/widgets/SingleChildRenderObjectWidget/CustomPaint/node1_clock.dart @@ -32,8 +32,8 @@ class ClockPainter extends CustomPainter { final double _radius = 3.0; //小球半径 final Path _path = Path(); //画笔对象 ClockPainter () { - _paint = Paint()..color= Color(0xff45d0fd)..isAntiAlias=true; - _path.addOval(Rect.fromCircle(radius: _radius, center: Offset(0, 0))); //小球路径 + _paint = Paint()..color= const Color(0xff45d0fd)..isAntiAlias=true; + _path.addOval(Rect.fromCircle(radius: _radius, center: const Offset(0, 0))); //小球路径 } @override diff --git a/lib/widget_system/widgets/SingleChildRenderObjectWidget/CustomSingleChildLayout/node2_offset.dart b/lib/widget_system/widgets/SingleChildRenderObjectWidget/CustomSingleChildLayout/node2_offset.dart index 2cc294d..f43a815 100644 --- a/lib/widget_system/widgets/SingleChildRenderObjectWidget/CustomSingleChildLayout/node2_offset.dart +++ b/lib/widget_system/widgets/SingleChildRenderObjectWidget/CustomSingleChildLayout/node2_offset.dart @@ -72,9 +72,9 @@ class OffSetWidget extends StatelessWidget { final Direction direction; const OffSetWidget( - {this.offset = Offset.zero, + {Key? key, this.offset = Offset.zero, required this.child, - this.direction = Direction.topLeft}); + this.direction = Direction.topLeft}) : super(key: key); @override Widget build(BuildContext context) { diff --git a/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node3_border.dart b/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node3_border.dart index 592f9d7..81a6dc1 100644 --- a/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node3_border.dart +++ b/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node3_border.dart @@ -10,6 +10,8 @@ import 'package:flutter/material.dart'; // "subtitle": "【border】 : 边线 【BoxBorder】\n", // } class BorderDemo extends StatelessWidget { + const BorderDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return DecoratedBox( diff --git a/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node4_shape.dart b/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node4_shape.dart index 57352d0..c7fe0d7 100644 --- a/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node4_shape.dart +++ b/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node4_shape.dart @@ -10,6 +10,8 @@ import 'package:flutter/material.dart'; // "subtitle": "通过ShapeDecoration对象可指定边线形状\n", // } class ShapeDecorationDemo extends StatelessWidget { + const ShapeDecorationDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return const DecoratedBox( diff --git a/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node5_line.dart b/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node5_line.dart index c4bb35e..4befaee 100644 --- a/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node5_line.dart +++ b/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node5_line.dart @@ -10,6 +10,8 @@ import 'package:flutter/material.dart'; // "subtitle": "通过UnderlineTabIndicator对象可指定底线\n", // } class UnderlineTabIndicatorDemo extends StatelessWidget { + const UnderlineTabIndicatorDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return const DecoratedBox( diff --git a/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node6_flutterLogo.dart b/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node6_flutterLogo.dart index 0d868fa..665dd42 100644 --- a/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node6_flutterLogo.dart +++ b/lib/widget_system/widgets/SingleChildRenderObjectWidget/DecoratedBox/node6_flutterLogo.dart @@ -11,6 +11,8 @@ import 'package:flutter/material.dart'; // } class FlutterLogoDecorationDemo extends StatelessWidget { + const FlutterLogoDecorationDemo({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return const DecoratedBox( diff --git a/lib/widget_system/widgets/SingleChildRenderObjectWidget/LayoutBuilder/node2_fit.dart b/lib/widget_system/widgets/SingleChildRenderObjectWidget/LayoutBuilder/node2_fit.dart index 9408350..ff42958 100644 --- a/lib/widget_system/widgets/SingleChildRenderObjectWidget/LayoutBuilder/node2_fit.dart +++ b/lib/widget_system/widgets/SingleChildRenderObjectWidget/LayoutBuilder/node2_fit.dart @@ -73,7 +73,7 @@ class _FitByLayoutBuilderState extends State { child: Row( children: [ Container( - margin: EdgeInsets.all(10), + margin: const EdgeInsets.all(10), height: 80, width: 30, color: Colors.grey, diff --git a/lib/widget_system/widgets/SingleChildRenderObjectWidget/SizeChangedLayoutNotifier/node1_base.dart b/lib/widget_system/widgets/SingleChildRenderObjectWidget/SizeChangedLayoutNotifier/node1_base.dart index ce67b3c..3e5c2d1 100644 --- a/lib/widget_system/widgets/SingleChildRenderObjectWidget/SizeChangedLayoutNotifier/node1_base.dart +++ b/lib/widget_system/widgets/SingleChildRenderObjectWidget/SizeChangedLayoutNotifier/node1_base.dart @@ -23,7 +23,7 @@ class _SizeChangedLayoutNotifierDemoState extends State( onNotification: _onNotification, - child: ChangeableBox(), + child: const ChangeableBox(), ); } diff --git a/lib/widget_system/widgets/SingleChildRenderObjectWidget/Transform/zz_node_op.dart b/lib/widget_system/widgets/SingleChildRenderObjectWidget/Transform/zz_node_op.dart index 2f5045e..6777027 100644 --- a/lib/widget_system/widgets/SingleChildRenderObjectWidget/Transform/zz_node_op.dart +++ b/lib/widget_system/widgets/SingleChildRenderObjectWidget/Transform/zz_node_op.dart @@ -66,11 +66,11 @@ class _CustomTransformState extends State { '${m[4]},${m[5]},${m[6]},${m[7]},\n' '${m[8]},${m[9]},${m[10]},${m[11]},\n' '${m[12]},${m[13]},${m[14]},${m[15]}\n', - style: TextStyle(fontSize: 20), + style: const TextStyle(fontSize: 20), ) ], ), - Container( + SizedBox( width: MediaQuery.of(context).size.width, height: 200, child: _buildSliders()) diff --git a/lib/widget_system/widgets/Sliver/SliverFillRemaining/node1_base.dart b/lib/widget_system/widgets/Sliver/SliverFillRemaining/node1_base.dart index c0aeb67..dad9fc6 100644 --- a/lib/widget_system/widgets/Sliver/SliverFillRemaining/node1_base.dart +++ b/lib/widget_system/widgets/Sliver/SliverFillRemaining/node1_base.dart @@ -80,7 +80,7 @@ class _SliverFillRemainingDemoState extends State { hasScrollBody = !hasScrollBody; }); }, - child: Text('hasScrollBody:$hasScrollBody',style: TextStyle(color: Colors.white),), + child: Text('hasScrollBody:$hasScrollBody',style: const TextStyle(color: Colors.white),), ), RaisedButton( color: Colors.blue, @@ -90,7 +90,7 @@ class _SliverFillRemainingDemoState extends State { fillOverscroll = !fillOverscroll; }); }, - child: Text('fillOverscroll:$fillOverscroll',style: TextStyle(color: Colors.white)), + child: Text('fillOverscroll:$fillOverscroll',style: const TextStyle(color: Colors.white)), ), ], ), @@ -107,7 +107,7 @@ class _SliverFillRemainingDemoState extends State { color: data[index], child: Text( colorString(data[index]), - style: TextStyle(color: Colors.white, shadows: [ + style: const TextStyle(color: Colors.white, shadows: [ Shadow( color: Colors.black, offset: Offset(.5, .5), @@ -122,9 +122,9 @@ class _SliverFillRemainingDemoState extends State { return SliverAppBar( expandedHeight: 120.0, leading: Container( - margin: EdgeInsets.all(10), + margin: const EdgeInsets.all(10), child: Image.asset('assets/images/icon_head.webp')), - title: Text('张风捷特烈'), + title: const Text('张风捷特烈'), actions: _buildActions(), elevation: 5, pinned: true, diff --git a/lib/widget_system/widgets/Sliver/SliverOverlapInjector/node1_base.dart b/lib/widget_system/widgets/Sliver/SliverOverlapInjector/node1_base.dart index d9cdded..d046f4c 100644 --- a/lib/widget_system/widgets/Sliver/SliverOverlapInjector/node1_base.dart +++ b/lib/widget_system/widgets/Sliver/SliverOverlapInjector/node1_base.dart @@ -21,7 +21,7 @@ class SliverOverlapInjectorDemo extends StatelessWidget { @override Widget build(BuildContext context) { - return Container( + return SizedBox( width: MediaQuery.of(context).size.width, height: MediaQuery.of(context).size.height - 200, child: Scaffold( diff --git a/lib/widget_system/widgets/StatefulWidget/AnimatedContainer/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/AnimatedContainer/node1_base.dart index 9cdb6e7..274cb01 100644 --- a/lib/widget_system/widgets/StatefulWidget/AnimatedContainer/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/AnimatedContainer/node1_base.dart @@ -52,7 +52,7 @@ class _CustomAnimatedContainerState extends State { spreadRadius: 0) ]); - final Alignment startAlignment = Alignment.topLeft + Alignment(0.2, 0.2); + final Alignment startAlignment = Alignment.topLeft + const Alignment(0.2, 0.2); final Alignment endAlignment = Alignment.center; final double startHeight = 150.0; diff --git a/lib/widget_system/widgets/StatefulWidget/AnimatedTheme/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/AnimatedTheme/node1_base.dart index 29cc248..dc38ee3 100644 --- a/lib/widget_system/widgets/StatefulWidget/AnimatedTheme/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/AnimatedTheme/node1_base.dart @@ -61,7 +61,7 @@ class _AnimatedThemeDemoState extends State { onEnd: () { print('----onEnd---'); }, - child: ChildContent(), + child: const ChildContent(), ), ], ); @@ -89,7 +89,7 @@ class ChildContent extends StatelessWidget { height: 60, alignment: Alignment.center, decoration: BoxDecoration( - borderRadius: const BorderRadius.all(const Radius.circular(5)), + borderRadius: const BorderRadius.all(Radius.circular(5)), color: Theme.of(context).primaryColor, ), padding: const EdgeInsets.all(10), diff --git a/lib/widget_system/widgets/StatefulWidget/AppBar/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/AppBar/node1_base.dart index 08ba7f8..35e450f 100755 --- a/lib/widget_system/widgets/StatefulWidget/AppBar/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/AppBar/node1_base.dart @@ -44,7 +44,7 @@ class CustomAppBar extends StatelessWidget { onPressed: () { // do nothing }), - CustomPopupMenuButton() + const CustomPopupMenuButton() ], ); } diff --git a/lib/widget_system/widgets/StatefulWidget/AppBar/node2_tab.dart b/lib/widget_system/widgets/StatefulWidget/AppBar/node2_tab.dart index eaafb6b..6279657 100755 --- a/lib/widget_system/widgets/StatefulWidget/AppBar/node2_tab.dart +++ b/lib/widget_system/widgets/StatefulWidget/AppBar/node2_tab.dart @@ -75,7 +75,7 @@ class _TabAppBarState extends State onPressed: () { // do nothing }), - CustomPopupMenuButton() + const CustomPopupMenuButton() ], bottom: TabBar( isScrollable: true, diff --git a/lib/widget_system/widgets/StatefulWidget/CupertinoTabView/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/CupertinoTabView/node1_base.dart index 796c413..5ecde41 100644 --- a/lib/widget_system/widgets/StatefulWidget/CupertinoTabView/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/CupertinoTabView/node1_base.dart @@ -27,7 +27,7 @@ class CupertinoTabViewDemo extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => CupertinoTabViewPage()), + builder: (context) => const CupertinoTabViewPage()), ); }, child: const Text("进入 CupertinoTabView 测试页"), @@ -48,7 +48,7 @@ class CupertinoTabViewPage extends StatelessWidget { child: CupertinoTabView( routes: { '/': (context) => _HomePage(), - '/test_detail': (context) => DetailPage(), + '/test_detail': (context) => const DetailPage(), }, ), ); diff --git a/lib/widget_system/widgets/StatefulWidget/DefaultTextStyleTransition/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/DefaultTextStyleTransition/node1_base.dart index fe912ac..8d8ef77 100644 --- a/lib/widget_system/widgets/StatefulWidget/DefaultTextStyleTransition/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/DefaultTextStyleTransition/node1_base.dart @@ -75,7 +75,7 @@ class _CustomDefaultTextStyleTransitionState color: Colors.white, fontSize: 20, shadows: [ - const Shadow( + Shadow( offset: Offset(1, 1), color: Colors.purple, blurRadius: 3) diff --git a/lib/widget_system/widgets/StatefulWidget/DropdownButton/node2_style.dart b/lib/widget_system/widgets/StatefulWidget/DropdownButton/node2_style.dart index a50b484..b8587aa 100644 --- a/lib/widget_system/widgets/StatefulWidget/DropdownButton/node2_style.dart +++ b/lib/widget_system/widgets/StatefulWidget/DropdownButton/node2_style.dart @@ -15,6 +15,8 @@ import 'package:flutter/material.dart'; // } class StyleDropDownButton extends StatefulWidget { + const StyleDropDownButton({Key? key}) : super(key: key); + @override _StyleDropDownButtonState createState() => _StyleDropDownButtonState(); } @@ -42,7 +44,7 @@ class _StyleDropDownButtonState extends State { color: _color, ), DropdownButton( - hint: Text('请选择'), + hint: const Text('请选择'), isDense: true, iconSize:20, iconEnabledColor:_color, diff --git a/lib/widget_system/widgets/StatefulWidget/ElevatedButton/node2_style.dart b/lib/widget_system/widgets/StatefulWidget/ElevatedButton/node2_style.dart index ab5fc69..9096c12 100644 --- a/lib/widget_system/widgets/StatefulWidget/ElevatedButton/node2_style.dart +++ b/lib/widget_system/widgets/StatefulWidget/ElevatedButton/node2_style.dart @@ -40,7 +40,7 @@ class ElevatedButtonStyleDemo extends StatelessWidget { primary: Colors.black, side: const BorderSide(color: Colors.blue,width: 1), shape: const RoundedRectangleBorder( - borderRadius: const BorderRadius.all(Radius.circular(10)) + borderRadius: BorderRadius.all(Radius.circular(10)) ), // elevation: 2, shadowColor: Colors.orangeAccent), diff --git a/lib/widget_system/widgets/StatefulWidget/Hero/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/Hero/node1_base.dart index becfdb4..119a0f4 100644 --- a/lib/widget_system/widgets/StatefulWidget/Hero/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/Hero/node1_base.dart @@ -49,7 +49,7 @@ class CustomHero extends StatelessWidget { child: Card(elevation: 5, child: container), onTap: () => Navigator.push( context, - Bottom2TopRouter(child: TargetPage(), duration: 1000), + Bottom2TopRouter(child: const TargetPage(), duration: 1000), ), ); } diff --git a/lib/widget_system/widgets/StatefulWidget/InteractiveViewer/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/InteractiveViewer/node1_base.dart index df770f1..e944cb4 100644 --- a/lib/widget_system/widgets/StatefulWidget/InteractiveViewer/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/InteractiveViewer/node1_base.dart @@ -29,7 +29,7 @@ class InteractiveViewerDemo extends StatelessWidget { height: 150, color: Colors.grey.withAlpha(33), child: InteractiveViewer( - boundaryMargin: EdgeInsets.all(40.0), + boundaryMargin: const EdgeInsets.all(40.0), maxScale: 2.5, minScale: 0.3, panEnabled: true, diff --git a/lib/widget_system/widgets/StatefulWidget/Navigator/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/Navigator/node1_base.dart index d2018c5..b9aace0 100644 --- a/lib/widget_system/widgets/StatefulWidget/Navigator/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/Navigator/node1_base.dart @@ -35,18 +35,18 @@ class NavigatorDemo extends StatelessWidget { switch (settings.name) { case '/home-content': return MaterialPageRoute( - builder: (_) => HomeContent(), settings: settings); + builder: (_) => const HomeContent(), settings: settings); case "/red": - return MaterialPageRoute(builder: (_) => RedPage(), settings: settings); + return MaterialPageRoute(builder: (_) => const RedPage(), settings: settings); case "/yellow": return MaterialPageRoute( - builder: (_) => YellowPage(), settings: settings); + builder: (_) => const YellowPage(), settings: settings); case "/green": return MaterialPageRoute( - builder: (_) => GreenPage(), settings: settings); + builder: (_) => const GreenPage(), settings: settings); default: return MaterialPageRoute( - builder: (_) => HomeContent(), settings: settings); + builder: (_) => const HomeContent(), settings: settings); } } @@ -146,6 +146,8 @@ class RedPage extends StatelessWidget { } class YellowPage extends StatelessWidget { + const YellowPage({Key? key}) : super(key: key); + @override Widget build(BuildContext context) { return Scaffold( diff --git a/lib/widget_system/widgets/StatefulWidget/Overlay/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/Overlay/node1_base.dart index 03e178f..d8a9aed 100644 --- a/lib/widget_system/widgets/StatefulWidget/Overlay/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/Overlay/node1_base.dart @@ -70,7 +70,7 @@ var entry = OverlayEntry( ///绘制悬浮控件 _buildFloating() => GestureDetector( onPanDown: (details) { - offset = details.globalPosition - Offset(radius / 2, radius / 2); + offset = details.globalPosition - const Offset(radius / 2, radius / 2); entry.markNeedsBuild(); }, onPanUpdate: (DragUpdateDetails details) { diff --git a/lib/widget_system/widgets/StatefulWidget/PageView/node3_controller.dart b/lib/widget_system/widgets/StatefulWidget/PageView/node3_controller.dart index b5a4b22..fea6821 100644 --- a/lib/widget_system/widgets/StatefulWidget/PageView/node3_controller.dart +++ b/lib/widget_system/widgets/StatefulWidget/PageView/node3_controller.dart @@ -58,7 +58,7 @@ class _CtrlPageViewState extends State { ]); @override Widget build(BuildContext context) { - return Container( + return SizedBox( height: 150, child: PageView( controller: _controller, diff --git a/lib/widget_system/widgets/StatefulWidget/PaginatedDataTable/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/PaginatedDataTable/node1_base.dart index 9735693..e7208c4 100644 --- a/lib/widget_system/widgets/StatefulWidget/PaginatedDataTable/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/PaginatedDataTable/node1_base.dart @@ -216,7 +216,9 @@ class DessertDataSource extends DataTableSource { void _selectAll(bool? checked) { if (checked == null) return; - for (HeroInfo dessert in _desserts) dessert.selected = checked; + for (HeroInfo dessert in _desserts) { + dessert.selected = checked; + } _selectedCount = checked ? _desserts.length : 0; notifyListeners(); } diff --git a/lib/widget_system/widgets/StatefulWidget/RefreshIndicator/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/RefreshIndicator/node1_base.dart index 4212dc1..6b2ba5b 100644 --- a/lib/widget_system/widgets/StatefulWidget/RefreshIndicator/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/RefreshIndicator/node1_base.dart @@ -39,7 +39,7 @@ class _CustomRefreshIndicatorState extends State { width: 200, height: 300, color: Colors.blue, - child: Text('$_count',style: TextStyle(color: Colors.white,fontSize: 40)), + child: Text('$_count',style: const TextStyle(color: Colors.white,fontSize: 40)), ), ), ), diff --git a/lib/widget_system/widgets/StatefulWidget/ReorderableListView/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/ReorderableListView/node1_base.dart index 4a348d6..d485ed0 100644 --- a/lib/widget_system/widgets/StatefulWidget/ReorderableListView/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/ReorderableListView/node1_base.dart @@ -73,7 +73,7 @@ final List data = [ child: Text( colorString(color), style: const TextStyle(color: Colors.white, shadows: [ - Shadow(color: Colors.black, offset: const Offset(.5, .5), blurRadius: 2) + Shadow(color: Colors.black, offset: Offset(.5, .5), blurRadius: 2) ]), ), ); diff --git a/lib/widget_system/widgets/StatefulWidget/StatusTransitionWidget/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/StatusTransitionWidget/node1_base.dart index 137de51..27e59ba 100644 --- a/lib/widget_system/widgets/StatefulWidget/StatusTransitionWidget/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/StatusTransitionWidget/node1_base.dart @@ -43,17 +43,17 @@ class _StatusTransitionWidgetDemoState extends State _ctrl.forward(from: 0); }, child: ColorStatusTransitionWidget( - animation: _ctrl, + anim: _ctrl, ), ); } } class ColorStatusTransitionWidget extends StatusTransitionWidget { - final Animation animation; + final Animation anim; - const ColorStatusTransitionWidget({Key? key,required this.animation}) - : super(key: key, animation: animation); + const ColorStatusTransitionWidget({Key? key,required this.anim}) + : super(key: key, animation: anim); @override Widget build(BuildContext context) { @@ -78,7 +78,7 @@ class ColorStatusTransitionWidget extends StatusTransitionWidget { width: 80, height: 80, decoration: BoxDecoration(color: color, shape: BoxShape.circle), - child: Text('${animation.status}'.split('.')[1],style: TextStyle(color: Colors.white),), + child: Text('${animation.status}'.split('.')[1],style: const TextStyle(color: Colors.white),), ); } } diff --git a/lib/widget_system/widgets/StatefulWidget/Stepper/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/Stepper/node1_base.dart index 45f7f8a..65a6b21 100644 --- a/lib/widget_system/widgets/StatefulWidget/Stepper/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/Stepper/node1_base.dart @@ -72,7 +72,7 @@ class _StepperDemoState extends State { color: Colors.blue, shape: const CircleBorder( side: BorderSide( - width: 2.0, color: const Color(0xFFDFDFDF)), + width: 2.0, color: Color(0xFFDFDFDF)), ), onPressed: details.onStepContinue, child: const Icon( diff --git a/lib/widget_system/widgets/StatefulWidget/Switch/node2_image.dart b/lib/widget_system/widgets/StatefulWidget/Switch/node2_image.dart index 6551093..f7f9d79 100644 --- a/lib/widget_system/widgets/StatefulWidget/Switch/node2_image.dart +++ b/lib/widget_system/widgets/StatefulWidget/Switch/node2_image.dart @@ -13,6 +13,8 @@ import 'package:flutter/material.dart'; // "【activeThumbImage】 : 选中时滑槽颜色 【ImageProvider】", // } class ImageSwitch extends StatefulWidget { + const ImageSwitch({Key? key}) : super(key: key); + @override _ImageSwitchState createState() => _ImageSwitchState(); } diff --git a/lib/widget_system/widgets/StatefulWidget/WidgetsApp/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/WidgetsApp/node1_base.dart index 0a4eb51..0a671a6 100644 --- a/lib/widget_system/widgets/StatefulWidget/WidgetsApp/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/WidgetsApp/node1_base.dart @@ -41,7 +41,7 @@ class _WidgetsAppDemoState extends State { (RouteSettings settings, WidgetBuilder builder) { return MaterialPageRoute(settings: settings, builder: builder); }, - home: HomePage(), + home: const HomePage(), ), ), ], diff --git a/lib/widget_system/widgets/StatelessWidget/AlertDialog/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/AlertDialog/node1_base.dart index 5341b64..9c6edca 100644 --- a/lib/widget_system/widgets/StatelessWidget/AlertDialog/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/AlertDialog/node1_base.dart @@ -38,14 +38,14 @@ class CustomAlertDialog extends StatelessWidget { Widget _buildRaisedButton(BuildContext context) => RaisedButton( shape: const RoundedRectangleBorder( - borderRadius: BorderRadius.all(const Radius.circular(10))), + borderRadius: BorderRadius.all(Radius.circular(10))), color: Colors.blue, onPressed: () { showDialog(context: context, builder: (ctx) => _buildAlertDialog()); }, child: const Text( 'Just Show It !', - style: const TextStyle(color: Colors.white), + style: TextStyle(color: Colors.white), ), ); @@ -68,7 +68,7 @@ class CustomAlertDialog extends StatelessWidget { ], elevation: 4, shape: const RoundedRectangleBorder( - borderRadius: const BorderRadius.all(Radius.circular(10))), + borderRadius: BorderRadius.all(Radius.circular(10))), ); } diff --git a/lib/widget_system/widgets/StatelessWidget/Card/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/Card/node1_base.dart index 978164d..f14412a 100644 --- a/lib/widget_system/widgets/StatelessWidget/Card/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/Card/node1_base.dart @@ -29,7 +29,7 @@ class CustomCard extends StatelessWidget { width: 200, height: 0.618*200, margin: const EdgeInsets.all(10), - child: const Text("Card", style: const TextStyle(fontSize: 20)), + child: const Text("Card", style: TextStyle(fontSize: 20)), ), ); } diff --git a/lib/widget_system/widgets/StatelessWidget/CupertinoDialogAction/no_node1_base.dart b/lib/widget_system/widgets/StatelessWidget/CupertinoDialogAction/no_node1_base.dart index af2e6fe..cc71f1f 100644 --- a/lib/widget_system/widgets/StatelessWidget/CupertinoDialogAction/no_node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/CupertinoDialogAction/no_node1_base.dart @@ -24,7 +24,7 @@ class CustomDialog extends StatelessWidget { onPressed: (){ }, - child: SizedBox( + child: const SizedBox( width: 50, child: DeleteDialog(), ), @@ -91,7 +91,7 @@ class DeleteDialog extends StatelessWidget { height: 40, width: 120, decoration: const BoxDecoration( - borderRadius: BorderRadius.all(const Radius.circular(30)), + borderRadius: BorderRadius.all(Radius.circular(30)), color: Color(0xff73D1EE)), child: const Text('Yes, Delete', style: TextStyle(color: Colors.white, fontSize: 16)), diff --git a/lib/widget_system/widgets/StatelessWidget/OrientationBuilder/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/OrientationBuilder/node1_base.dart index 7ca4b54..22968e8 100644 --- a/lib/widget_system/widgets/StatelessWidget/OrientationBuilder/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/OrientationBuilder/node1_base.dart @@ -39,12 +39,10 @@ class _OrientationBuilderDemoState extends State { switch(orientation){ case Orientation.portrait: return const Icon(Icons.phone_android,size: 60,); - break; case Orientation.landscape: return const RotatedBox( quarterTurns: 1, - child: const Icon(Icons.phone_android,size: 60,)); - break; + child: Icon(Icons.phone_android,size: 60,)); default: return Container(); } } diff --git a/lib/widget_system/widgets/StatelessWidget/SafeArea/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/SafeArea/node1_base.dart index afd775c..bfeb97e 100644 --- a/lib/widget_system/widgets/StatelessWidget/SafeArea/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/SafeArea/node1_base.dart @@ -26,7 +26,7 @@ class SafeAreaDemo extends StatelessWidget { onPressed: () { Navigator.push( context, - MaterialPageRoute(builder: (context) => SafeAreaPage()), + MaterialPageRoute(builder: (context) => const SafeAreaPage()), ); }, child: const Text("进入 SafeArea 测试页"), diff --git a/lib/widget_system/widgets/StatelessWidget/ScrollView/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/ScrollView/node1_base.dart index 1f2f7df..081b9c4 100644 --- a/lib/widget_system/widgets/StatelessWidget/ScrollView/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/ScrollView/node1_base.dart @@ -24,7 +24,7 @@ class ScrollViewDemo extends StatelessWidget { @override Widget build(BuildContext context) { - return Container( + return SizedBox( height: 300, child: MyScrollView(), ); diff --git a/lib/widget_system/widgets/widgets_map.dart b/lib/widget_system/widgets/widgets_map.dart index e3b8745..d00dceb 100644 --- a/lib/widget_system/widgets/widgets_map.dart +++ b/lib/widget_system/widgets/widgets_map.dart @@ -23,8 +23,8 @@ class WidgetsMap { ]; case "CupertinoSegmentedControl": return [ - CupertinoSegmentedControlDemo(), - CupertinoSegmentedControlColor() + const CupertinoSegmentedControlDemo(), + const CupertinoSegmentedControlColor() ]; case "CompositedTransformTarget": return [ @@ -35,7 +35,7 @@ class WidgetsMap { const CompositedTransformFollowerDemo(), ]; case "PrimaryScrollController": return [ - PrimaryScrollControllerDemo(), + const PrimaryScrollControllerDemo(), ];case "CupertinoFullscreenDialogTransition": return [ const CupertinoFullscreenDialogTransitionDemo(), @@ -62,18 +62,18 @@ class WidgetsMap { ]; case "ElevatedButton": return [ - ElevatedButtonDemo(), - ElevatedButtonStyleDemo(), + const ElevatedButtonDemo(), + const ElevatedButtonStyleDemo(), ]; case "TextButton": return [ - TextButtonDemo(), - TextButtonStyleDemo(), + const TextButtonDemo(), + const TextButtonStyleDemo(), ]; case "OutlinedButton": return [ - OutlinedButtonDemo(), - OutlinedButtonStyleDemo(), + const OutlinedButtonDemo(), + const OutlinedButtonStyleDemo(), ]; case "FlutterLogo": return [ @@ -86,18 +86,18 @@ class WidgetsMap { ]; case "UniqueWidget": return [ - UniqueWidgetDemo(), + const UniqueWidgetDemo(), ]; case "ShrinkWrappingViewport": return [ - ShrinkWrappingViewportDemo(), + const ShrinkWrappingViewportDemo(), ]; case "NestedScrollViewViewport": return [ - NestedScrollViewViewportDemo(), + const NestedScrollViewViewportDemo(), ]; case "ParentDataWidget": return [ - ParentDataWidgetDemo(), + const ParentDataWidgetDemo(), ]; case "AutomaticKeepAlive": return [ @@ -105,7 +105,7 @@ class WidgetsMap { ]; case "StatusTransitionWidget": return [ - StatusTransitionWidgetDemo(), + const StatusTransitionWidgetDemo(), ]; case "KeepAlive": return [ @@ -120,7 +120,7 @@ class WidgetsMap { ]; case "InheritedTheme": return [ - InheritedThemeDemo(), + const InheritedThemeDemo(), ]; case "ModalBarrier": return [ @@ -128,27 +128,27 @@ class WidgetsMap { ]; case "AnimatedModalBarrier": return [ - AnimatedModalBarrierDemo(), + const AnimatedModalBarrierDemo(), ]; case "DefaultAssetBundle": return [ - DefaultAssetBundleDemo(), + const DefaultAssetBundleDemo(), ]; case "DropdownButtonFormField": return [ - DropdownButtonFormFieldDemo(), + const DropdownButtonFormFieldDemo(), ]; case "FormField": return [ - FormFieldDemo(), + const FormFieldDemo(), ]; case "PaginatedDataTable": return [ - PaginatedDataTableDemo(), + const PaginatedDataTableDemo(), ]; case "InheritedWidget": return [ - InheritedWidgetDemo(), + const InheritedWidgetDemo(), ]; case "ScrollView": return [ @@ -156,7 +156,7 @@ class WidgetsMap { ]; case "SliverWithKeepAliveWidget": return [ - SliverWithKeepAliveWidgetDemo(), + const SliverWithKeepAliveWidgetDemo(), ]; case "BoxScrollView": return [ @@ -164,7 +164,7 @@ class WidgetsMap { ]; case "CupertinoUserInterfaceLevel": return [ - CupertinoUserInterfaceLevelDemo(), + const CupertinoUserInterfaceLevelDemo(), ]; case "CupertinoSliverNavigationBar": return [ @@ -172,19 +172,19 @@ class WidgetsMap { ]; case "CupertinoSliverRefreshControl": return [ - CupertinoSliverRefreshControlDemo(), + const CupertinoSliverRefreshControlDemo(), ]; case "SliverAnimatedList": return [ - SliverAnimatedListDemo(), + const SliverAnimatedListDemo(), ]; case "SliverFillRemaining": return [ - SliverFillRemainingDemo(), + const SliverFillRemainingDemo(), ]; case "SliverIgnorePointer": return [ - SliverIgnorePointerDemo(), + const SliverIgnorePointerDemo(), ]; case "Viewport": return [ @@ -196,31 +196,31 @@ class WidgetsMap { ]; case "RenderObjectToWidgetAdapter": return [ - RenderObjectToWidgetAdapterDemo(), + const RenderObjectToWidgetAdapterDemo(), ]; case "SliverPrototypeExtentList": return [ - SliverPrototypeExtentListDemo(), + const SliverPrototypeExtentListDemo(), ]; case "InputDecorator": return [ - InputDecoratorDemo(), + const InputDecoratorDemo(), ]; case "ColoredBox": return [ - ColoredBoxDemo(), + const ColoredBoxDemo(), ]; case "StatefulBuilder": return [ - StatefulBuilderDemo(), + const StatefulBuilderDemo(), ]; case "RawKeyboardListener": return [ - RawKeyboardListenerDemo(), + const RawKeyboardListenerDemo(), ]; case "RawGestureDetector": return [ - RawGestureDetectorDemo(), + const RawGestureDetectorDemo(), ]; case "SafeArea": return [ @@ -228,15 +228,15 @@ class WidgetsMap { ]; case "AnimatedBuilder": return [ - AnimatedBuilderDemo(), + const AnimatedBuilderDemo(), ]; case "TweenAnimationBuilder": return [ - TweenAnimationBuilderDemo(), + const TweenAnimationBuilderDemo(), ]; case "WidgetInspector": return [ - WidgetInspectorDemo(), + const WidgetInspectorDemo(), ]; case "PageStorage": return [ @@ -251,48 +251,48 @@ class WidgetsMap { ]; case "PhysicalModel": return [ - PhysicalModelDemo(), + const PhysicalModelDemo(), ]; case "Directionality": return [ - DirectionalityDemo(), + const DirectionalityDemo(), ]; case "AnimatedTheme": return [ - AnimatedThemeDemo(), + const AnimatedThemeDemo(), ]; case "CupertinoSlidingSegmentedControl": return [ - CupertinoSlidingSegmentedControlDemo(), + const CupertinoSlidingSegmentedControlDemo(), ]; case "WidgetsApp": return [ - WidgetsAppDemo(), + const WidgetsAppDemo(), ]; case "TableCell": return [ - TableCellDemo(), + const TableCellDemo(), ]; case "EditableText": return [ - EditableTextDemo(), + const EditableTextDemo(), ]; case "PhysicalShape": return [ - PhysicalShapeDemo(), + const PhysicalShapeDemo(), ]; case "ListBody": return [ - ListBodyDemo(), + const ListBodyDemo(), ]; case "FractionalTranslation": return [ - FractionalTranslationDemo(), + const FractionalTranslationDemo(), ]; case "MouseRegion": return [ - MouseRegionDemo(), + const MouseRegionDemo(), ]; case "TabPageSelector": return [ @@ -312,11 +312,11 @@ class WidgetsMap { ]; case "ToggleButtonsTheme": return [ - ToggleButtonsThemeDemo(), + const ToggleButtonsThemeDemo(), ]; case "PerformanceOverlay": return [ - PerformanceOverlayDemo(), + const PerformanceOverlayDemo(), ]; case "NavigationToolbar": return [ @@ -328,20 +328,20 @@ class WidgetsMap { ]; case "ButtonBarTheme": return [ - ButtonBarThemeDemo(), + const ButtonBarThemeDemo(), ]; case "RawImage": return [ - RawImageDemo(), + const RawImageDemo(), ]; case "TooltipTheme": return [ - TooltipThemeDemo(), + const TooltipThemeDemo(), ]; case "CupertinoTextField": return [ - CupertinoTextFieldDemo(), - CupertinoTextFieldStyle(), + const CupertinoTextFieldDemo(), + const CupertinoTextFieldStyle(), ]; case "MaterialBanner": return [ @@ -367,9 +367,9 @@ class WidgetsMap { ]; case "InteractiveViewer": return [ - InteractiveViewerDemo(), - InteractiveViewerDemo2(), - InteractiveViewerDemo3(), + const InteractiveViewerDemo(), + const InteractiveViewerDemo2(), + const InteractiveViewerDemo3(), ]; case "CircleAvatar": return [ @@ -377,7 +377,7 @@ class WidgetsMap { ]; case "SliverLayoutBuilder": return [ - SliverLayoutBuilderDemo(), + const SliverLayoutBuilderDemo(), ]; case "Visibility": return [ @@ -386,7 +386,7 @@ class WidgetsMap { ]; case "RepaintBoundary": return [ - RepaintBoundaryDemo(), + const RepaintBoundaryDemo(), RepaintBoundarySave(), ]; case "Chip": @@ -398,25 +398,25 @@ class WidgetsMap { case "ChoiceChip": return [const CustomChoiceChip()]; case "ListTileTheme": - return [ListTileThemeDemo()]; + return [const ListTileThemeDemo()]; case "ValueListenableBuilder": return [ValueListenableBuilderDemo()]; case "ActionChip": return [const CustomActionChip()]; case "MaterialBannerTheme": - return [MaterialBannerThemeDemo()]; + return [const MaterialBannerThemeDemo()]; case "PopupMenuTheme": - return [PopupMenuThemeDemo()]; + return [const PopupMenuThemeDemo()]; case "InputChip": return [const PressInputChip(), const SelectInputChip()]; case "FilterChip": return [const CustomFilterChip()]; case "IntrinsicHeight": - return [IntrinsicHeightDemo()]; + return [const IntrinsicHeightDemo()]; case "IntrinsicWidth": - return [IntrinsicWidthDemo()]; + return [const IntrinsicWidthDemo()]; case "ChipTheme": - return [ChipThemeDemo()]; + return [const ChipThemeDemo()]; case "ListTile": return [const CustomListTile(), const SelectListTile(), const DenseListTile()]; case "CheckboxListTile": @@ -495,23 +495,17 @@ class WidgetsMap { const ColorToggleButtons(), const ProToggleButtons(), ]; - case "ToggleButtons": - return [ - const CustomToggleButtons(), - const ColorToggleButtons(), - const ProToggleButtons(), - ]; case "NestedScrollView": return [ - NestedScrollViewDemo(), + const NestedScrollViewDemo(), ]; case "SliverOverlapAbsorber": return [ - SliverOverlapAbsorberDemo(), + const SliverOverlapAbsorberDemo(), ]; case "SliverOverlapInjector": return [ - SliverOverlapInjectorDemo(), + const SliverOverlapInjectorDemo(), ]; case "Divider": return [ @@ -535,85 +529,85 @@ class WidgetsMap { ]; case "Image": return [ - LoadImage(), - FitImage(), - AlignmentImage(), - BlendModeImage(), - RepeatImage(), - CenterSliceImage(), + const LoadImage(), + const FitImage(), + const AlignmentImage(), + const BlendModeImage(), + const RepeatImage(), + const CenterSliceImage(), ]; case "Checkbox": return [ - CustomCheckbox(), - TristateCheckBok(), + const CustomCheckbox(), + const TristateCheckBok(), ]; case "Switch": return [ - CustomSwitch(), - ImageSwitch(), + const CustomSwitch(), + const ImageSwitch(), ]; case "CupertinoSwitch": return [ - CustomCupertinoSwitch(), + const CustomCupertinoSwitch(), ]; case "Slider": return [ - CustomSlider(), - DivisionsSlider(), + const CustomSlider(), + const DivisionsSlider(), ]; case "CupertinoSlider": return [ - CustomCupertinoSlider(), + const CustomCupertinoSlider(), ]; case "RangeSlider": return [ - CustomRangeSlider(), + const CustomRangeSlider(), ]; case "Radio": return [ - CustomRadio(), + const CustomRadio(), ]; case "CustomMultiChildLayout": return [ - CustomMultiChildLayoutDemo(), + const CustomMultiChildLayoutDemo(), ]; case "LayoutId": return [ - LayoutIdDemo(), + const LayoutIdDemo(), ]; case "CircularProgressIndicator": return [ - CustomCircularProgressIndicator(), + const CustomCircularProgressIndicator(), ]; case "LinearProgressIndicator": return [ - CustomLinearProgressIndicator(), + const CustomLinearProgressIndicator(), ]; case "CupertinoActivityIndicator": return [ - CustomCupertinoActivityIndicator(), + const CustomCupertinoActivityIndicator(), ]; case "RefreshIndicator": return [ - CustomRefreshIndicator(), + const CustomRefreshIndicator(), ]; case "Tooltip": return [ - CustomTooltip(), - DecorationTooltip(), + const CustomTooltip(), + const DecorationTooltip(), ]; case "ExpandIcon": return [ - CustomExpandIcon(), + const CustomExpandIcon(), ]; case "ExpansionTile": return [ - CustomExpansionTile(), + const CustomExpansionTile(), ]; case "AnnotatedRegion": return [ - AnnotatedRegionDemo(), + const AnnotatedRegionDemo(), ]; case "CheckedModeBanner": return [ @@ -621,15 +615,15 @@ class WidgetsMap { ]; case "DefaultTabController": return [ - DefaultTabControllerDemo(), + const DefaultTabControllerDemo(), ]; case "CupertinoTabView": return [ - CupertinoTabViewDemo(), + const CupertinoTabViewDemo(), ]; case "CupertinoTextSelectionToolbar": return [ - CupertinoTextSelectionToolbarDemo(), + const CupertinoTextSelectionToolbarDemo(), ]; case "DraggableScrollableActuator": return [ @@ -641,44 +635,44 @@ class WidgetsMap { ]; case "DraggableScrollableSheet": return [ - DraggableScrollableSheetDemo(), + const DraggableScrollableSheetDemo(), ]; case "DrawerController": return [ - DrawerControllerDemo(), + const DrawerControllerDemo(), ]; case "MergeableMaterial": return [ - MergeableMaterialDemo(), + const MergeableMaterialDemo(), ]; case "SizeChangedLayoutNotifier": return [ - SizeChangedLayoutNotifierDemo(), + const SizeChangedLayoutNotifierDemo(), ]; case "SelectableText": return [ - CustomSelectableText(), - AlignSelectableText(), + const CustomSelectableText(), + const AlignSelectableText(), ]; case "TextField": return [ - CustomTextField(), - CursorTextField(), - ComplexTextField(), + const CustomTextField(), + const CursorTextField(), + const ComplexTextField(), ]; case "DropdownButton": return [ - CustomDropDownButton(), - StyleDropDownButton(), + const CustomDropDownButton(), + const StyleDropDownButton(), ]; case "PopupMenuButton": return [ - CustomPopupMenuButton(), + const CustomPopupMenuButton(), ]; case "AppBar": return [ - CustomAppBar(), - TabAppBar(), + const CustomAppBar(), + const TabAppBar(), ]; case "TabBar": return [ @@ -687,48 +681,51 @@ class WidgetsMap { ]; case "TabBarView": return [ - CustomTabBarView(), + const CustomTabBarView(), ]; case "BottomNavigationBar": - return [CustomBottomNavigationBar(), BottomNavigationBarWithPageView()]; + return [ + const CustomBottomNavigationBar(), + const BottomNavigationBarWithPageView() + ]; case "BottomAppBar": return [ - CustomBottomAppBar(), + const CustomBottomAppBar(), ]; case "CupertinoNavigationBar": return [ - CustomCupertinoNavigationBar(), + const CustomCupertinoNavigationBar(), ]; case "CupertinoTabBar": return [ - CustomCupertinoTabBar(), + const CustomCupertinoTabBar(), ]; case "Scaffold": return [ - CustomScaffold(), + const CustomScaffold(), ]; case "MaterialApp": return [ - MaterialAppDemo(), + const MaterialAppDemo(), ]; case "ClipOval": return [ - CustomClipOval(), + const CustomClipOval(), ]; case "ClipRect": return [ - CustomClipRect(), + const CustomClipRect(), ]; case "ClipRRect": return [ - CustomClipRRect(), + const CustomClipRRect(), ]; case "ClipPath": return [ - CustomClipPath(), + const CustomClipPath(), ]; case "DecoratedBox": - return [ + return const [ BoxDecorationDemo(), ShapeImageDemo(), BorderDemo(), @@ -738,99 +735,99 @@ class WidgetsMap { ]; case "Offstage": return [ - CustomOffstage(), + const CustomOffstage(), ]; case "RotatedBox": return [ - CustomRotatedBox(), + const CustomRotatedBox(), ]; case "Opacity": return [ - CustomOpacity(), + const CustomOpacity(), ]; case "Padding": return [ - PaddingAll(), - PaddingOnly(), - PaddingSymmetric(), + const PaddingAll(), + const PaddingOnly(), + const PaddingSymmetric(), ]; case "Baseline": return [ - CustomBaseline(), + const CustomBaseline(), ]; case "SizedBox": return [ - CustomSizedBox(), + const CustomSizedBox(), ]; case "AspectRatio": return [ - CustomAspectRatio(), + const CustomAspectRatio(), ]; case "Transform": return [ - SkewTransform(), - TranslationTransform(), - ScaleTransform(), - RotateTransform(), - R3C2(), + const SkewTransform(), + const TranslationTransform(), + const ScaleTransform(), + const RotateTransform(), + const R3C2(), ]; case "LimitedBox": return [ - CustomLimitedBox(), + const CustomLimitedBox(), ]; case "ConstrainedBox": return [ - CustomConstrainedBox(), + const CustomConstrainedBox(), ]; case "UnconstrainedBox": return [ - CustomUnConstrainedBox(), + const CustomUnConstrainedBox(), ]; case "FractionallySizedBox": return [ - CustomFractionallySizedBox(), + const CustomFractionallySizedBox(), ]; case "OverflowBox": return [ - CustomOverflowBox(), + const CustomOverflowBox(), ]; case "SizedOverflowBox": return [ - CustomSizedOverflowBox(), + const CustomSizedOverflowBox(), ]; case "Align": - return [CustomAlign(), SinLayout()]; + return [const CustomAlign(), const SinLayout()]; case "Center": return [ - CustomCenter(), + const CustomCenter(), ]; case "FittedBox": return [ - CustomFittedBox(), + const CustomFittedBox(), ]; case "ColorFiltered": return [ - CustomColorFiltered(), + const CustomColorFiltered(), ]; case "FadeTransition": return [ - CustomFadeTransition(), + const CustomFadeTransition(), ]; case "RotationTransition": return [ - CustomRotationTransition(), + const CustomRotationTransition(), ]; case "ScaleTransition": return [ - CustomScaleTransition(), + const CustomScaleTransition(), ]; case "SizeTransition": return [ - CustomSizeTransition(), + const CustomSizeTransition(), ]; case "PositionedTransition": return [ - CustomPositionedTransition(), + const CustomPositionedTransition(), ]; case "Flex": return [ @@ -842,14 +839,14 @@ class WidgetsMap { ]; case "Row": return [ - CustomRow(), + const CustomRow(), ]; case "Column": return [ - CustomColumn(), + const CustomColumn(), ]; case "Stack": - return [CustomStack(), PositionedStack()]; + return [const CustomStack(), const PositionedStack()]; case "Wrap": return [ DirectionWrap(), @@ -865,13 +862,13 @@ class WidgetsMap { ]; case "AnimatedCrossFade": return [ - CustomAnimatedCrossFade(), - CurveAnimatedCrossFade(), + const CustomAnimatedCrossFade(), + const CurveAnimatedCrossFade(), ]; case "RichText": return [ - CustomRichText(), - RichTextWithWidget(), + const CustomRichText(), + const RichTextWithWidget(), ]; case "DataTable": return [ @@ -880,21 +877,21 @@ class WidgetsMap { ]; case "Draggable": return [ - CustomDraggable(), - DraggablePage(), - DeleteDraggable(), + const CustomDraggable(), + const DraggablePage(), + const DeleteDraggable(), ]; case "DragTarget": return [ - CustomDragTarget(), + const CustomDragTarget(), ]; case "LongPressDraggable": return [ - CustomLongPressDraggable(), + const CustomLongPressDraggable(), ]; case "Expanded": return [ - CustomExpended(), + const CustomExpended(), ]; case "Spacer": return [ @@ -903,71 +900,71 @@ class WidgetsMap { ]; case "Positioned": return [ - CustomPositioned(), + const CustomPositioned(), ]; case "Flexible": return [ - CustomFlexible(), + const CustomFlexible(), ]; case "Table": return [ - CustomTable(), + const CustomTable(), ]; case "AlignTransition": return [ - CustomAlignTransition(), + const CustomAlignTransition(), ]; case "SlideTransition": return [ - CustomSlideTransition(), + const CustomSlideTransition(), ]; case "DecoratedBoxTransition": return [ - CustomDecoratedBoxTransition(), + const CustomDecoratedBoxTransition(), ]; case "DefaultTextStyleTransition": return [ - CustomDefaultTextStyleTransition(), + const CustomDefaultTextStyleTransition(), ]; case "RelativePositionedTransition": return [ - CustomRelativePositionedTransition(), + const CustomRelativePositionedTransition(), ]; case "AnimatedSwitcher": return [ - CustomAnimatedSwitcher(), + const CustomAnimatedSwitcher(), ]; case "AnimatedList": return [ - CustomAnimatedList(), + const CustomAnimatedList(), ]; case "AnimatedOpacity": return [ - CustomAnimatedOpacity(), + const CustomAnimatedOpacity(), ]; case "AnimatedPadding": return [ - CustomAnimatedPadding(), + const CustomAnimatedPadding(), ]; case "AnimatedAlign": return [ - CustomAnimatedAlign(), + const CustomAnimatedAlign(), ]; case "AnimatedPositioned": return [ - CustomAnimatedPositioned(), + const CustomAnimatedPositioned(), ]; case "AnimatedPositionedDirectional": return [ - CustomAnimatedPositionedDirectional(), + const CustomAnimatedPositionedDirectional(), ]; case "AnimatedContainer": return [ - CustomAnimatedContainer(), + const CustomAnimatedContainer(), ]; case "AnimatedDefaultTextStyle": return [ - CustomAnimatedDefaultTextStyle(), + const CustomAnimatedDefaultTextStyle(), ]; case "AnimatedIcon": return [ @@ -1011,23 +1008,23 @@ class WidgetsMap { ]; case "MonthPicker": return [ - CustomMonthPicker(), + const CustomMonthPicker(), ]; case "YearPicker": return [ - CustomYearPicker(), + const CustomYearPicker(), ]; case "CupertinoDatePicker": return [ - CustomCupertinoDatePicker(), + const CustomCupertinoDatePicker(), ]; case "CupertinoTimerPicker": return [ - CustomCupertinoTimerPicker(), + const CustomCupertinoTimerPicker(), ]; case "CupertinoPicker": return [ - CustomCupertinoPicker(), + const CustomCupertinoPicker(), ]; case "SnackBar": return [ @@ -1043,15 +1040,15 @@ class WidgetsMap { ]; case "CupertinoContextMenu": return [ - CustomCupertinoContextMenu(), + const CustomCupertinoContextMenu(), ]; case "CupertinoContextMenuAction": return [ - CustomCupertinoContextMenuAction(), + const CustomCupertinoContextMenuAction(), ]; case "LicensePage": return [ - CustomLicensePage(), + const CustomLicensePage(), ]; case "Builder": return [ @@ -1078,27 +1075,27 @@ class WidgetsMap { ]; case "InkResponse": return [ - CustomInkResponse(), - ColorInkResponse(), + const CustomInkResponse(), + const ColorInkResponse(), ]; case "InkWell": return [ - CustomInkWell(), - ColorInkWell(), + const CustomInkWell(), + const ColorInkWell(), ]; case "TableRowInkWell": return [ - CustomTableRowInkWell(), + const CustomTableRowInkWell(), ]; case "Ink": return [ - CustomInk(), - InkImage(), + const CustomInk(), + const InkImage(), ]; case "RawChip": return [ - PressRawChip(), - SelectRawChip(), + const PressRawChip(), + const SelectRawChip(), ]; case "Drawer": return [ @@ -1110,15 +1107,15 @@ class WidgetsMap { ]; case "CupertinoApp": return [ - CustomCupertinoApp(), + const CustomCupertinoApp(), ]; case "CupertinoPageScaffold": return [ - CustomCupertinoPageScaffold(), + const CustomCupertinoPageScaffold(), ]; case "CupertinoTabScaffold": return [ - CustomCupertinoTabScaffold(), + const CustomCupertinoTabScaffold(), ]; case "PositionedDirectional": return [ @@ -1126,12 +1123,12 @@ class WidgetsMap { ]; case "Material": return [ - CustomMaterial(), - ShapeMaterial(), + const CustomMaterial(), + const ShapeMaterial(), ]; case "IndexedStack": return [ - CustomIndexedStack(), + const CustomIndexedStack(), ]; case "ListView": return [ @@ -1156,16 +1153,16 @@ class WidgetsMap { return [ CustomPageView(), DirectionPageView(), - CtrlPageView(), + const CtrlPageView(), ]; case "CustomPaint": return [ - ClockPage(), - PlayBezier3Page(), + const ClockPage(), + const PlayBezier3Page(), ]; case "MediaQuery": return [ - CustomMediaQuery(), + const CustomMediaQuery(), ]; case "Theme": return [const TextThemeDemo(), const CustomTheme()]; @@ -1173,46 +1170,46 @@ class WidgetsMap { return [const TextCupertinoTheme(), const CustomCupertinoTheme()]; case "WillPopScope": return [ - CustomWillPopScope(), + const CustomWillPopScope(), ]; case "Hero": return [ - CustomHero(), + const CustomHero(), ]; case "FutureBuilder": return [ - CustomFutureBuilder(), + const CustomFutureBuilder(), ]; case "StreamBuilder": return [ - CustomStreamBuilder(), + const CustomStreamBuilder(), ]; case "PopupMenuDivider": return [ - CustomPopupMenuDivider(), + const CustomPopupMenuDivider(), ]; case "RawMaterialButton": return [ - CustomRawMaterialButton(), - ShapeRawMaterialButton(), + const CustomRawMaterialButton(), + const ShapeRawMaterialButton(), ]; case "Dismissible": return [ - CustomDismissible(), - DirectionDismissible(), + const CustomDismissible(), + const DirectionDismissible(), ]; case "ReorderableListView": return [ - CustomReorderableListView(), - DirectionReorderableListView(), + const CustomReorderableListView(), + const DirectionReorderableListView(), ]; case "ExpansionPanelList": return [ - CustomExpansionPanelList(), + const CustomExpansionPanelList(), ]; case "ListWheelScrollView": return [ - CustomListWheelScrollView(), + const CustomListWheelScrollView(), ]; case "ScrollConfiguration": return [ @@ -1220,11 +1217,11 @@ class WidgetsMap { ]; case "DropdownButtonHideUnderline": return [ - CustomDropDownButtonHideUnderline(), + const CustomDropDownButtonHideUnderline(), ]; case "Overlay": return [ - CustomOverlay(), + const CustomOverlay(), ]; case "CustomScrollView": return [ @@ -1232,7 +1229,7 @@ class WidgetsMap { ]; case "SliverAppBar": return [ - SliverAppBarDemo(), + const SliverAppBarDemo(), ]; case "SliverList": return [ @@ -1240,11 +1237,11 @@ class WidgetsMap { ]; case "SliverFixedExtentList": return [ - SliverFixedExtentListDemo(), + const SliverFixedExtentListDemo(), ]; case "SliverFillViewport": return [ - SliverFillViewportDemo(), + const SliverFillViewportDemo(), ]; case "SliverGird": return [ @@ -1284,81 +1281,81 @@ class WidgetsMap { ]; case "ErrorWidget": return [ - ErrorWidgetDemo(), + const ErrorWidgetDemo(), ]; case "Form": return [ - CustomForm(), + const CustomForm(), ]; case "TextFormField": return [ - CustomTextFormField(), + const CustomTextFormField(), ]; case "Stepper": return [ - StepperDemo(), - VerticalStepper(), + const StepperDemo(), + const VerticalStepper(), ]; case "AnimatedSize": return [ - CustomAnimatedSize(), + const CustomAnimatedSize(), ]; case "ShaderMask": return [ - RadialShaderMask(), - LinearShaderMask(), + const RadialShaderMask(), + const LinearShaderMask(), ]; case "DefaultTextStyle": return [ - DefaultTextStyleDemo(), + const DefaultTextStyleDemo(), ]; case "IconTheme": return [ - IconThemeDemo(), + const IconThemeDemo(), ]; case "ButtonTheme": return [ - ButtonThemeDemo(), + const ButtonThemeDemo(), ]; case "DividerTheme": return [ - DividerThemeDemo(), + const DividerThemeDemo(), ]; case "Navigator": return [ - NavigatorDemo(), + const NavigatorDemo(), ]; case "SliderTheme": return [ - SliderThemeDemo(), - DIYSliderTheme(), + const SliderThemeDemo(), + const DIYSliderTheme(), ]; case "LayoutBuilder": return [ - CustomLayoutBuilder(), - FitByLayoutBuilder(), - SimpleExpandableText(), + const CustomLayoutBuilder(), + const FitByLayoutBuilder(), + const SimpleExpandableText(), ]; case "IgnorePointer": return [ - CustomIgnorePointer(), + const CustomIgnorePointer(), ]; case "AbsorbPointer": return [ - CustomAbsorbPointer(), + const CustomAbsorbPointer(), ]; case "BackdropFilter": return [ - CustomBackdropFilter(), + const CustomBackdropFilter(), ]; case "AnimatedPhysicalModel": return [ - AnimatedPhysicalModelDemo(), + const AnimatedPhysicalModelDemo(), ]; case "CustomSingleChildLayout": return [ - CustomSingleChildLayoutDemo(), - OffSetWidgetDemo(), + const CustomSingleChildLayoutDemo(), + const OffSetWidgetDemo(), ]; default: return []; }