diff --git a/lib/common/example_code_parser.dart b/lib/common/example_code_parser.dart index 0a0310ca..fa7e5b33 100644 --- a/lib/common/example_code_parser.dart +++ b/lib/common/example_code_parser.dart @@ -2,15 +2,17 @@ * @Author: 一凨 * @Date: 2019-01-14 11:42:36 * @Last Modified by: 一凨 - * @Last Modified time: 2019-01-14 15:53:20 + * @Last Modified time: 2019-01-14 16:53:11 */ // Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'dart:async'; - +import '../routers/application.dart'; import 'package:flutter/services.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:flutter/material.dart'; const String _kStartTag = '// START '; const String _kEndTag = '// END'; @@ -18,47 +20,27 @@ const String _kEndTag = '// END'; Map _exampleCode; String _code; -Future getExampleCode(String filePath, AssetBundle bundle) async { - if (_exampleCode == null) - await _parseExampleCode(filePath,bundle); - // return _exampleCode[filePath]; +void _launchURL(String url) async { + if (await canLaunch(url)) { + await launch(url); + } else { + throw 'Could not launch $url'; + } +} + +Future getExampleCode(context,String filePath, AssetBundle bundle) async { + if (_exampleCode == null) await _parseExampleCode(context,filePath, bundle); return _code; } -Future _parseExampleCode(String filePath,AssetBundle bundle) async { - - final String code = await bundle.loadString('$filePath') ?? - '// $filePath not found\n'; - print('$filePath 1234567Nealyang'); - _code = code; - // _exampleCode = {}; - // final List lines = code.split('\n'); - // List codeBlock; - // String codeTag; - - // for (String line in lines) { - // if (codeBlock == null) { - // // Outside a block. - // if (line.startsWith(_kStartTag)) { - // // Starting a new code block. - // codeBlock = []; - // codeTag = line.substring(_kStartTag.length).trim(); - // } else { - // // Just skipping the line. - // } - // } else { - // // Inside a block. - // if (line.startsWith(_kEndTag)) { - // // Add the block. - // _exampleCode[codeTag] = codeBlock.join('\n'); - // codeBlock = null; - // codeTag = null; - // } else { - // // Add to the current block - // // trimRight() to remove any \r on Windows - // // without removing any useful indentation - // codeBlock.add(line.trimRight()); - // } - // } - // } +Future _parseExampleCode(context,String filePath, AssetBundle bundle) async { + String code; + try { + code = await bundle.loadString('lib/widgets/$filePath'); + } catch (err) { + print('${Application.github['widgetsURL']} $filePath'); + Navigator.of(context).pop(); + _launchURL(Application.github['widgetsURL'] + filePath); + } + _code = code; } diff --git a/lib/common/full_screen_code_dialog.dart b/lib/common/full_screen_code_dialog.dart index 74d38aeb..ee098740 100644 --- a/lib/common/full_screen_code_dialog.dart +++ b/lib/common/full_screen_code_dialog.dart @@ -20,7 +20,7 @@ class _FullScreenCodeDialogState extends State { @override void didChangeDependencies() { - getExampleCode(widget.filePath, DefaultAssetBundle.of(context)) + getExampleCode(context,'${widget.filePath}', DefaultAssetBundle.of(context)) .then((String code) { if (mounted) { setState(() { diff --git a/lib/common/widget_demo.dart b/lib/common/widget_demo.dart index ca8b518f..6277c800 100644 --- a/lib/common/widget_demo.dart +++ b/lib/common/widget_demo.dart @@ -146,8 +146,7 @@ class _WidgetDemoState extends State { _launchURL(widget.docUrl); }else if(value =='code'){ // _launchURL(Application.github['widgetsURL'] + widget.codeUrl); - String targetUrl = 'lib/widgets/${widget.codeUrl}'; - Application.router.navigateTo(context, '${Routes.codeView}?filePath=${Uri.encodeComponent(targetUrl)}'); + Application.router.navigateTo(context, '${Routes.codeView}?filePath=${Uri.encodeComponent(widget.codeUrl)}'); }else{ _getCollection(); diff --git a/lib/widgets/components/Chip/Chip/demo.dart b/lib/widgets/components/Chip/Chip/demo.dart index cd90b0d6..ad128cb4 100644 --- a/lib/widgets/components/Chip/Chip/demo.dart +++ b/lib/widgets/components/Chip/Chip/demo.dart @@ -1,9 +1,10 @@ /* * @Author: xiaojia.dxj * @Date: 2018-12-18 11:40:57 - * @Last Modified by: xiaojia.dxj - * @Last Modified time: 2018-12-20 15:03:18 + * @Last Modified by: 一凨 + * @Last Modified time: 2019-01-14 16:50:43 */ + import 'package:flutter/material.dart'; class ChipDemo extends StatefulWidget { @@ -11,74 +12,81 @@ class ChipDemo extends StatefulWidget { } class _ChipDemoState extends State { - String dec='点击回收'; - int count=0; - _modifty(){ + String dec = '点击回收'; + int count = 0; + _modifty() { setState(() { - dec='delete success: $count'; - }); - + dec = 'delete success: $count'; + }); } - + @override Widget build(BuildContext context) { - return Column( - children: [ - Container( - child: Chip( - padding: EdgeInsets.only(right: 100.0,), - //标签前面的小widget - avatar: CircleAvatar( - backgroundColor: Colors.red.shade200, - child: Text('A',style: TextStyle(color: Colors.white),), - - ), - label: Text('pai mai ',style: TextStyle(color: Colors.white,fontSize: 18.0),), - backgroundColor: Colors.red.shade100, - labelPadding: EdgeInsets.all(6.0), - ), - ), - Container( - - height: 100.0, - child: Chip( - //头像 - avatar: CircleAvatar( - child: Icon(Icons.account_circle,color: Colors.red.shade200,), - backgroundColor:Colors.white, - + return Column( + children: [ + Container( + child: Chip( + padding: EdgeInsets.only( + right: 100.0, + ), + //标签前面的小widget + avatar: CircleAvatar( + backgroundColor: Colors.red.shade200, + child: Text( + 'A', + style: TextStyle(color: Colors.white), + ), + ), + label: Text( + 'pai mai ', + style: TextStyle(color: Colors.white, fontSize: 18.0), + ), + backgroundColor: Colors.red.shade100, + labelPadding: EdgeInsets.all(6.0), ), - //设置widget背景颜色 - backgroundColor: Colors.red.shade100, - /**剪辑窗口widget内容 - * antiAlias:剪辑具有抗锯齿功能,它比antiAliasWithSaveLayer快得多,但比hardEdge慢。 - antiAliasWithSaveLayer:立即剪辑具有抗锯齿,并且可以分配屏幕外缓冲区,后续涂料都在该缓冲区完成,然后再进行修剪和合成 - */ - clipBehavior: Clip.antiAlias, - - //设置padding值 - labelPadding: EdgeInsets.all(8.0), - label: Text(dec), - //设置onDeleted时候显示的图标 - deleteIcon: Icon(Icons.delete,color: Colors.white,size: 20.0,), - onDeleted: (){ - count++; - _modifty(); - }, - deleteButtonTooltipMessage: '删除', - deleteIconColor: Colors.blueGrey.shade100, - //将最小点击目标大小扩展到48*48px - materialTapTargetSize: MaterialTapTargetSize.padded, - padding: EdgeInsets.all(2.0), - //修改字体格式 - labelStyle: TextStyle(fontWeight: FontWeight.bold), - // shape: _MyBorder(), ), - ) - ], + Container( + height: 100.0, + child: Chip( + //头像 + avatar: CircleAvatar( + child: Icon( + Icons.account_circle, + color: Colors.red.shade200, + ), + backgroundColor: Colors.white, + ), + //设置widget背景颜色 + backgroundColor: Colors.red.shade100, + //剪辑窗口widget内容 + // antiAlias:剪辑具有抗锯齿功能,它比antiAliasWithSaveLayer快得多,但比hardEdge慢。 + //antiAliasWithSaveLayer:立即剪辑具有抗锯齿,并且可以分配屏幕外缓冲区,后续涂料都在该缓冲区完成,然后再进行修剪和合成 + clipBehavior: Clip.antiAlias, + + //设置padding值 + labelPadding: EdgeInsets.all(8.0), + label: Text(dec), + //设置onDeleted时候显示的图标 + deleteIcon: Icon( + Icons.delete, + color: Colors.white, + size: 20.0, + ), + onDeleted: () { + count++; + _modifty(); + }, + deleteButtonTooltipMessage: '删除', + deleteIconColor: Colors.blueGrey.shade100, + //将最小点击目标大小扩展到48*48px + materialTapTargetSize: MaterialTapTargetSize.padded, + padding: EdgeInsets.all(2.0), + //修改字体格式 + labelStyle: TextStyle(fontWeight: FontWeight.bold), + // shape: _MyBorder(), + ), + ) + ], ); } } - - - diff --git a/lib/widgets/elements/Form/Button/FlatButton/demo.dart b/lib/widgets/elements/Form/Button/FlatButton/demo.dart index 45352b5f..ee2b36c4 100644 --- a/lib/widgets/elements/Form/Button/FlatButton/demo.dart +++ b/lib/widgets/elements/Form/Button/FlatButton/demo.dart @@ -9,10 +9,8 @@ import 'dart:math'; import 'package:flutter/material.dart'; -/* -* FlatButton 默认按钮的实例 -* isDisabled:是否是禁用,isDisabled 默认为true -* */ +// FlatButton 默认按钮的实例 +// isDisabled:是否是禁用,isDisabled 默认为true class FlatButtonDefault extends StatelessWidget { final bool isDisabled; @@ -29,11 +27,10 @@ class FlatButtonDefault extends StatelessWidget { } } -/* -* FlatButton.icon 默认按钮的实例 -* Create a text button from a pair of widgets that serve as the button's icon and label -* isDisabled:是否是禁用 -* */ + +// FlatButton.icon 默认按钮的实例 +// * Create a text button from a pair of widgets that serve as the button's icon and label +// * isDisabled:是否是禁用 class FlatButtonIconDefault extends StatelessWidget { final bool isDisabled; final IconData icon; @@ -63,9 +60,9 @@ class FlatButtonIconDefault extends StatelessWidget { } } -/* -* FlatButton 自定义的实例 -* */ + +// FlatButton 自定义的实例 + class FlatButtonCustom extends StatelessWidget { final String txt; final Color color; diff --git a/lib/widgets/elements/Form/CheckBox/Checkbox/index.dart b/lib/widgets/elements/Form/CheckBox/Checkbox/index.dart index 5f0d40d9..aeb49130 100644 --- a/lib/widgets/elements/Form/CheckBox/Checkbox/index.dart +++ b/lib/widgets/elements/Form/CheckBox/Checkbox/index.dart @@ -47,7 +47,7 @@ class _DemoState extends State { Widget build(BuildContext context) { return WidgetDemo( title: 'Checkbox', - codeUrl: 'elements/Form/Checkbox/Checkbox/demo.dart', + codeUrl: 'elements/Form/CheckBox/Checkbox/demo.dart', contentList: [allCheckboxs(context,this)], docUrl: 'https://docs.flutter.io/flutter/material/Checkbox-class.html', ); diff --git a/lib/widgets/elements/Form/CheckBox/CheckboxListTile/demo.dart b/lib/widgets/elements/Form/CheckBox/CheckboxListTile/demo.dart index ce63afa7..d4e5c2a9 100644 --- a/lib/widgets/elements/Form/CheckBox/CheckboxListTile/demo.dart +++ b/lib/widgets/elements/Form/CheckBox/CheckboxListTile/demo.dart @@ -9,10 +9,8 @@ import 'package:flutter/material.dart'; -/* -* Checkbox 默认的实例 -* index 当前checkbox 的索引值 -* */ +// Checkbox 默认的实例 +// index 当前checkbox 的索引值 class CheckboxListTileStateDefault extends StatefulWidget { const CheckboxListTileStateDefault() : super(); @@ -20,9 +18,7 @@ class CheckboxListTileStateDefault extends StatefulWidget { State createState() => _CheckboxListTileStateDefault(); } -/* -* CheckboxListTile 默认的实例,有状态 -* */ +// CheckboxListTile 默认的实例,有状态 class _CheckboxListTileStateDefault extends State { bool _value = false; void _valueChanged(bool value) { @@ -105,9 +101,7 @@ class _CheckboxListTileStateDefault extends State { } } -/* -* CheckboxListTile 默认的实例,无状态 -* */ +// CheckboxListTile 默认的实例,无状态 class CheckboxListTileDefault extends StatelessWidget { final widget; final parant; diff --git a/lib/widgets/elements/Form/CheckBox/CheckboxListTile/index.dart b/lib/widgets/elements/Form/CheckBox/CheckboxListTile/index.dart index a38f9cbc..ba41a1cc 100644 --- a/lib/widgets/elements/Form/CheckBox/CheckboxListTile/index.dart +++ b/lib/widgets/elements/Form/CheckBox/CheckboxListTile/index.dart @@ -47,7 +47,7 @@ class _DemoState extends State { Widget build(BuildContext context) { return WidgetDemo( title: 'CheckboxListTile', - codeUrl: 'elements/Form/Checkbox/CheckboxListTile/demo.dart', + codeUrl: 'elements/Form/CheckBox/CheckboxListTile/demo.dart', contentList: [allCheckboxs(context, this)], docUrl: 'https://docs.flutter.io/flutter/material/CheckboxListTile-class.html', ); diff --git a/lib/widgets/elements/Frame/Spacing/AnimatedPadding/index.dart b/lib/widgets/elements/Frame/Spacing/AnimatedPadding/index.dart index 1f37c161..bc1ea654 100644 --- a/lib/widgets/elements/Frame/Spacing/AnimatedPadding/index.dart +++ b/lib/widgets/elements/Frame/Spacing/AnimatedPadding/index.dart @@ -2,7 +2,7 @@ * @Author: 一凨 * @Date: 2018-11-28 20:44:13 * @Last Modified by: 一凨 - * @Last Modified time: 2018-11-28 20:51:20 + * @Last Modified time: 2019-01-14 17:02:20 */ import 'package:flutter/material.dart'; import '../../../../../common/widget_demo.dart'; @@ -37,7 +37,7 @@ class _DemoState extends State { ], docUrl: 'https://docs.flutter.io/flutter/widgets/AnimatedPadding-class.html', - codeUrl: 'elements/Frame/spacing/AnimatedPadding/animatedPadding_demo.dart', + codeUrl: 'elements/Frame/Spacing/AnimatedPadding/animatedPadding_demo.dart', ); } } diff --git a/lib/widgets/elements/Frame/Spacing/Padding/index.dart b/lib/widgets/elements/Frame/Spacing/Padding/index.dart index b40de371..1a345608 100644 --- a/lib/widgets/elements/Frame/Spacing/Padding/index.dart +++ b/lib/widgets/elements/Frame/Spacing/Padding/index.dart @@ -1,8 +1,8 @@ /* * @Author: 一凨 * @Date: 2018-11-28 20:25:24 - * @Last Modified by: 一凨 - * @Last Modified time: 2018-11-28 20:25:24 + * @Last Modified by: 一凨 + * @Last Modified time: 2019-01-14 17:01:55 */ import 'package:flutter/material.dart'; import '../../../../../common/widget_demo.dart'; @@ -38,7 +38,7 @@ class _DemoState extends State { ], docUrl: 'https://docs.flutter.io/flutter/widgets/Padding-class.html', codeUrl: - 'elements/Frame/spacing/Padding/padding_demo.dart', + 'elements/Frame/Spacing/Padding/padding_demo.dart', ); } } diff --git a/lib/widgets/elements/Frame/Spacing/Padding/padding_demo.dart b/lib/widgets/elements/Frame/Spacing/Padding/padding_demo.dart index 6f18d634..d390c773 100644 --- a/lib/widgets/elements/Frame/Spacing/Padding/padding_demo.dart +++ b/lib/widgets/elements/Frame/Spacing/Padding/padding_demo.dart @@ -1,10 +1,10 @@ +import 'package:flutter/material.dart'; /* * @Author: 一凨 * @Date: 2018-11-28 20:20:04 * @Last Modified by: 一凨 - * @Last Modified time: 2018-11-28 20:20:49 + * @Last Modified time: 2019-01-14 16:30:16 */ -import 'package:flutter/material.dart'; class PaddingDemo extends StatelessWidget { @override diff --git a/lib/widgets/elements/Frame/Spacing/SliverPadding/index.dart b/lib/widgets/elements/Frame/Spacing/SliverPadding/index.dart index 451936b7..b919a156 100644 --- a/lib/widgets/elements/Frame/Spacing/SliverPadding/index.dart +++ b/lib/widgets/elements/Frame/Spacing/SliverPadding/index.dart @@ -2,7 +2,7 @@ * @Author: 一凨 * @Date: 2018-11-28 20:26:16 * @Last Modified by: 一凨 - * @Last Modified time: 2018-11-28 20:39:28 + * @Last Modified time: 2019-01-14 17:06:36 */ import 'package:flutter/material.dart'; import 'package:flutter_go/common/widget_demo.dart'; @@ -33,7 +33,7 @@ class _DemoState extends State { Widget build(BuildContext context) { return WidgetDemo( title: 'SliverPadding', - codeUrl: 'elements/Frame/spacing/SliverPadding/sliverpadding_demo.dart', + codeUrl: 'elements/Frame/Spacing/SliverPadding/sliverpadding_demo.dart', contentList: [ contentDesc0, contentDesc1, diff --git a/lib/widgets/elements/Frame/Stack/IndexedStack/index.dart b/lib/widgets/elements/Frame/Stack/IndexedStack/index.dart index aac1164c..bdafe5e3 100644 --- a/lib/widgets/elements/Frame/Stack/IndexedStack/index.dart +++ b/lib/widgets/elements/Frame/Stack/IndexedStack/index.dart @@ -39,7 +39,7 @@ class _DemoState extends State { title: 'IndexedStack', // desc: _desc, codeUrl: - 'https://github.com/alibaba-paimai-frontend/flutter-common-widgets-app/blob/dev/sanlu-0.0.4/lib/widgets/elements/Frame/Stack/IndexedStack/demo.dart', + 'elements/Frame/Stack/IndexedStack/demo.dart', docUrl: 'https://docs.flutter.io/flutter/widgets/IndexedStack-class.html', contentList: [ _stackText0, diff --git a/lib/widgets/elements/Frame/Stack/Stack/index.dart b/lib/widgets/elements/Frame/Stack/Stack/index.dart index 7cd8f2c1..6cdf56b9 100644 --- a/lib/widgets/elements/Frame/Stack/Stack/index.dart +++ b/lib/widgets/elements/Frame/Stack/Stack/index.dart @@ -41,7 +41,7 @@ class _DemoState extends State { return WidgetDemo( title: 'Stack', codeUrl: - 'https://github.com/alibaba-paimai-frontend/flutter-common-widgets-app/blob/dev/sanlu-0.0.4/lib/widgets/elements/Frame/Stack/Stack/demo.dart', + 'elements/Frame/Stack/Stack/demo.dart', docUrl: 'https://docs.flutter.io/flutter/widgets/Stack-class.html', contentList: [ _stackText0, diff --git a/pubspec.yaml b/pubspec.yaml index e33abd48..5165f5ef 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -168,6 +168,7 @@ flutter: - lib/common/syntax_highlighter.dart + # To add assets to your application, add an assets section, like this: # assets: # - images/a_dot_burr.jpeg