refactor:code view

This commit is contained in:
yifeng.yl
2019-01-14 17:15:15 +08:00
parent 5da3b4c3e9
commit 441ed56a00
15 changed files with 125 additions and 144 deletions

View File

@ -2,15 +2,17 @@
* @Author: 一凨 * @Author: 一凨
* @Date: 2019-01-14 11:42:36 * @Date: 2019-01-14 11:42:36
* @Last Modified by: 一凨 * @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. // Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
import 'dart:async'; import 'dart:async';
import '../routers/application.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:flutter/material.dart';
const String _kStartTag = '// START '; const String _kStartTag = '// START ';
const String _kEndTag = '// END'; const String _kEndTag = '// END';
@ -18,47 +20,27 @@ const String _kEndTag = '// END';
Map<String, String> _exampleCode; Map<String, String> _exampleCode;
String _code; String _code;
Future<String> getExampleCode(String filePath, AssetBundle bundle) async { void _launchURL(String url) async {
if (_exampleCode == null) if (await canLaunch(url)) {
await _parseExampleCode(filePath,bundle); await launch(url);
// return _exampleCode[filePath]; } else {
throw 'Could not launch $url';
}
}
Future<String> getExampleCode(context,String filePath, AssetBundle bundle) async {
if (_exampleCode == null) await _parseExampleCode(context,filePath, bundle);
return _code; return _code;
} }
Future<void> _parseExampleCode(String filePath,AssetBundle bundle) async { Future<void> _parseExampleCode(context,String filePath, AssetBundle bundle) async {
String code;
final String code = await bundle.loadString('$filePath') ?? try {
'// $filePath not found\n'; code = await bundle.loadString('lib/widgets/$filePath');
print('$filePath 1234567Nealyang'); } catch (err) {
print('${Application.github['widgetsURL']} $filePath');
Navigator.of(context).pop();
_launchURL(Application.github['widgetsURL'] + filePath);
}
_code = code; _code = code;
// _exampleCode = <String, String>{};
// final List<String> lines = code.split('\n');
// List<String> codeBlock;
// String codeTag;
// for (String line in lines) {
// if (codeBlock == null) {
// // Outside a block.
// if (line.startsWith(_kStartTag)) {
// // Starting a new code block.
// codeBlock = <String>[];
// 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());
// }
// }
// }
} }

View File

@ -20,7 +20,7 @@ class _FullScreenCodeDialogState extends State<FullScreenCodeDialog> {
@override @override
void didChangeDependencies() { void didChangeDependencies() {
getExampleCode(widget.filePath, DefaultAssetBundle.of(context)) getExampleCode(context,'${widget.filePath}', DefaultAssetBundle.of(context))
.then<void>((String code) { .then<void>((String code) {
if (mounted) { if (mounted) {
setState(() { setState(() {

View File

@ -146,8 +146,7 @@ class _WidgetDemoState extends State<WidgetDemo> {
_launchURL(widget.docUrl); _launchURL(widget.docUrl);
}else if(value =='code'){ }else if(value =='code'){
// _launchURL(Application.github['widgetsURL'] + widget.codeUrl); // _launchURL(Application.github['widgetsURL'] + widget.codeUrl);
String targetUrl = 'lib/widgets/${widget.codeUrl}'; Application.router.navigateTo(context, '${Routes.codeView}?filePath=${Uri.encodeComponent(widget.codeUrl)}');
Application.router.navigateTo(context, '${Routes.codeView}?filePath=${Uri.encodeComponent(targetUrl)}');
}else{ }else{
_getCollection(); _getCollection();

View File

@ -1,9 +1,10 @@
/* /*
* @Author: xiaojia.dxj * @Author: xiaojia.dxj
* @Date: 2018-12-18 11:40:57 * @Date: 2018-12-18 11:40:57
* @Last Modified by: xiaojia.dxj * @Last Modified by: 一凨
* @Last Modified time: 2018-12-20 15:03:18 * @Last Modified time: 2019-01-14 16:50:43
*/ */
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class ChipDemo extends StatefulWidget { class ChipDemo extends StatefulWidget {
@ -11,13 +12,12 @@ class ChipDemo extends StatefulWidget {
} }
class _ChipDemoState extends State<ChipDemo> { class _ChipDemoState extends State<ChipDemo> {
String dec='点击回收'; String dec = '点击回收';
int count=0; int count = 0;
_modifty(){ _modifty() {
setState(() { setState(() {
dec='delete success: $count'; dec = 'delete success: $count';
}); });
} }
@override @override
@ -26,42 +26,53 @@ class _ChipDemoState extends State<ChipDemo> {
children: <Widget>[ children: <Widget>[
Container( Container(
child: Chip( child: Chip(
padding: EdgeInsets.only(right: 100.0,), padding: EdgeInsets.only(
right: 100.0,
),
//标签前面的小widget //标签前面的小widget
avatar: CircleAvatar( avatar: CircleAvatar(
backgroundColor: Colors.red.shade200, backgroundColor: Colors.red.shade200,
child: Text('A',style: TextStyle(color: Colors.white),), child: Text(
'A',
style: TextStyle(color: Colors.white),
),
),
label: Text(
'pai mai ',
style: TextStyle(color: Colors.white, fontSize: 18.0),
), ),
label: Text('pai mai ',style: TextStyle(color: Colors.white,fontSize: 18.0),),
backgroundColor: Colors.red.shade100, backgroundColor: Colors.red.shade100,
labelPadding: EdgeInsets.all(6.0), labelPadding: EdgeInsets.all(6.0),
), ),
), ),
Container( Container(
height: 100.0, height: 100.0,
child: Chip( child: Chip(
//头像 //头像
avatar: CircleAvatar( avatar: CircleAvatar(
child: Icon(Icons.account_circle,color: Colors.red.shade200,), child: Icon(
backgroundColor:Colors.white, Icons.account_circle,
color: Colors.red.shade200,
),
backgroundColor: Colors.white,
), ),
//设置widget背景颜色 //设置widget背景颜色
backgroundColor: Colors.red.shade100, backgroundColor: Colors.red.shade100,
/**剪辑窗口widget内容 //剪辑窗口widget内容
* antiAlias:剪辑具有抗锯齿功能它比antiAliasWithSaveLayer快得多但比hardEdge慢。 // antiAlias:剪辑具有抗锯齿功能它比antiAliasWithSaveLayer快得多但比hardEdge慢。
antiAliasWithSaveLayer:立即剪辑具有抗锯齿,并且可以分配屏幕外缓冲区,后续涂料都在该缓冲区完成,然后再进行修剪和合成 //antiAliasWithSaveLayer:立即剪辑具有抗锯齿,并且可以分配屏幕外缓冲区,后续涂料都在该缓冲区完成,然后再进行修剪和合成
*/
clipBehavior: Clip.antiAlias, clipBehavior: Clip.antiAlias,
//设置padding值 //设置padding值
labelPadding: EdgeInsets.all(8.0), labelPadding: EdgeInsets.all(8.0),
label: Text(dec), label: Text(dec),
//设置onDeleted时候显示的图标 //设置onDeleted时候显示的图标
deleteIcon: Icon(Icons.delete,color: Colors.white,size: 20.0,), deleteIcon: Icon(
onDeleted: (){ Icons.delete,
color: Colors.white,
size: 20.0,
),
onDeleted: () {
count++; count++;
_modifty(); _modifty();
}, },
@ -79,6 +90,3 @@ class _ChipDemoState extends State<ChipDemo> {
); );
} }
} }

View File

@ -9,10 +9,8 @@
import 'dart:math'; import 'dart:math';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
/* // FlatButton 默认按钮的实例
* FlatButton 默认按钮的实例 // isDisabled:是否是禁用isDisabled 默认为true
* isDisabled:是否是禁用isDisabled 默认为true
* */
class FlatButtonDefault extends StatelessWidget { class FlatButtonDefault extends StatelessWidget {
final bool isDisabled; final bool isDisabled;
@ -29,11 +27,10 @@ class FlatButtonDefault extends StatelessWidget {
} }
} }
/*
* FlatButton.icon 默认按钮的实例 // FlatButton.icon 默认按钮的实例
* Create a text button from a pair of widgets that serve as the button's icon and label // * Create a text button from a pair of widgets that serve as the button's icon and label
* isDisabled:是否是禁用 // * isDisabled:是否是禁用
* */
class FlatButtonIconDefault extends StatelessWidget { class FlatButtonIconDefault extends StatelessWidget {
final bool isDisabled; final bool isDisabled;
final IconData icon; final IconData icon;
@ -63,9 +60,9 @@ class FlatButtonIconDefault extends StatelessWidget {
} }
} }
/*
* FlatButton 自定义的实例 // FlatButton 自定义的实例
* */
class FlatButtonCustom extends StatelessWidget { class FlatButtonCustom extends StatelessWidget {
final String txt; final String txt;
final Color color; final Color color;

View File

@ -47,7 +47,7 @@ class _DemoState extends State<Demo> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return WidgetDemo( return WidgetDemo(
title: 'Checkbox', title: 'Checkbox',
codeUrl: 'elements/Form/Checkbox/Checkbox/demo.dart', codeUrl: 'elements/Form/CheckBox/Checkbox/demo.dart',
contentList: [allCheckboxs(context,this)], contentList: [allCheckboxs(context,this)],
docUrl: 'https://docs.flutter.io/flutter/material/Checkbox-class.html', docUrl: 'https://docs.flutter.io/flutter/material/Checkbox-class.html',
); );

View File

@ -9,10 +9,8 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
/* // Checkbox 默认的实例
* Checkbox 默认的实例 // index 当前checkbox 的索引值
* index 当前checkbox 的索引值
* */
class CheckboxListTileStateDefault extends StatefulWidget { class CheckboxListTileStateDefault extends StatefulWidget {
const CheckboxListTileStateDefault() : super(); const CheckboxListTileStateDefault() : super();
@ -20,9 +18,7 @@ class CheckboxListTileStateDefault extends StatefulWidget {
State<StatefulWidget> createState() => _CheckboxListTileStateDefault(); State<StatefulWidget> createState() => _CheckboxListTileStateDefault();
} }
/* // CheckboxListTile 默认的实例,有状态
* CheckboxListTile 默认的实例,有状态
* */
class _CheckboxListTileStateDefault extends State { class _CheckboxListTileStateDefault extends State {
bool _value = false; bool _value = false;
void _valueChanged(bool value) { void _valueChanged(bool value) {
@ -105,9 +101,7 @@ class _CheckboxListTileStateDefault extends State {
} }
} }
/* // CheckboxListTile 默认的实例,无状态
* CheckboxListTile 默认的实例,无状态
* */
class CheckboxListTileDefault extends StatelessWidget { class CheckboxListTileDefault extends StatelessWidget {
final widget; final widget;
final parant; final parant;

View File

@ -47,7 +47,7 @@ class _DemoState extends State<Demo> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return WidgetDemo( return WidgetDemo(
title: 'CheckboxListTile', title: 'CheckboxListTile',
codeUrl: 'elements/Form/Checkbox/CheckboxListTile/demo.dart', codeUrl: 'elements/Form/CheckBox/CheckboxListTile/demo.dart',
contentList: [allCheckboxs(context, this)], contentList: [allCheckboxs(context, this)],
docUrl: 'https://docs.flutter.io/flutter/material/CheckboxListTile-class.html', docUrl: 'https://docs.flutter.io/flutter/material/CheckboxListTile-class.html',
); );

View File

@ -2,7 +2,7 @@
* @Author: 一凨 * @Author: 一凨
* @Date: 2018-11-28 20:44:13 * @Date: 2018-11-28 20:44:13
* @Last Modified by: 一凨 * @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 'package:flutter/material.dart';
import '../../../../../common/widget_demo.dart'; import '../../../../../common/widget_demo.dart';
@ -37,7 +37,7 @@ class _DemoState extends State<Demo> {
], ],
docUrl: docUrl:
'https://docs.flutter.io/flutter/widgets/AnimatedPadding-class.html', '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',
); );
} }
} }

View File

@ -2,7 +2,7 @@
* @Author: 一凨 * @Author: 一凨
* @Date: 2018-11-28 20:25:24 * @Date: 2018-11-28 20:25:24
* @Last Modified by: 一凨 * @Last Modified by: 一凨
* @Last Modified time: 2018-11-28 20:25:24 * @Last Modified time: 2019-01-14 17:01:55
*/ */
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../../../../../common/widget_demo.dart'; import '../../../../../common/widget_demo.dart';
@ -38,7 +38,7 @@ class _DemoState extends State<Demo> {
], ],
docUrl: 'https://docs.flutter.io/flutter/widgets/Padding-class.html', docUrl: 'https://docs.flutter.io/flutter/widgets/Padding-class.html',
codeUrl: codeUrl:
'elements/Frame/spacing/Padding/padding_demo.dart', 'elements/Frame/Spacing/Padding/padding_demo.dart',
); );
} }
} }

View File

@ -1,10 +1,10 @@
import 'package:flutter/material.dart';
/* /*
* @Author: 一凨 * @Author: 一凨
* @Date: 2018-11-28 20:20:04 * @Date: 2018-11-28 20:20:04
* @Last Modified by: 一凨 * @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 { class PaddingDemo extends StatelessWidget {
@override @override

View File

@ -2,7 +2,7 @@
* @Author: 一凨 * @Author: 一凨
* @Date: 2018-11-28 20:26:16 * @Date: 2018-11-28 20:26:16
* @Last Modified by: 一凨 * @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/material.dart';
import 'package:flutter_go/common/widget_demo.dart'; import 'package:flutter_go/common/widget_demo.dart';
@ -33,7 +33,7 @@ class _DemoState extends State<Demo> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return WidgetDemo( return WidgetDemo(
title: 'SliverPadding', title: 'SliverPadding',
codeUrl: 'elements/Frame/spacing/SliverPadding/sliverpadding_demo.dart', codeUrl: 'elements/Frame/Spacing/SliverPadding/sliverpadding_demo.dart',
contentList: [ contentList: [
contentDesc0, contentDesc0,
contentDesc1, contentDesc1,

View File

@ -39,7 +39,7 @@ class _DemoState extends State<Demo> {
title: 'IndexedStack', title: 'IndexedStack',
// desc: _desc, // desc: _desc,
codeUrl: 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', docUrl: 'https://docs.flutter.io/flutter/widgets/IndexedStack-class.html',
contentList: [ contentList: [
_stackText0, _stackText0,

View File

@ -41,7 +41,7 @@ class _DemoState extends State<Demo> {
return WidgetDemo( return WidgetDemo(
title: 'Stack', title: 'Stack',
codeUrl: 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', docUrl: 'https://docs.flutter.io/flutter/widgets/Stack-class.html',
contentList: [ contentList: [
_stackText0, _stackText0,

View File

@ -168,6 +168,7 @@ flutter:
- lib/common/syntax_highlighter.dart - lib/common/syntax_highlighter.dart
# To add assets to your application, add an assets section, like this: # To add assets to your application, add an assets section, like this:
# assets: # assets:
# - images/a_dot_burr.jpeg # - images/a_dot_burr.jpeg