Merge branch 'develop' of github.com:alibaba/flutter-common-widgets-app into develop

This commit is contained in:
sanfan.hx
2019-01-29 15:06:22 +08:00
207 changed files with 549 additions and 786 deletions

62
CHANGE-LOG.md Normal file
View File

@ -0,0 +1,62 @@
## 更新日志
#### 2019-1-24
- [x] 功能:更新小部件的图标
- [x] 功能添加CupertinoTimerPickerDemo
- [x] 调试:消除警告
- [x] 修复:关于手册图标更换
- [x] 添加:文案描述
- [x] 添加CupertinoPickerCupertinoPopupSurface
#### 2019-1-23
- [x] 修复: 导航栏home返回报错
- [x] 修复:收集错误
- [x] 添加CupertinoNavigationBar CupertinoPageRoute CupertinoPageScaffold
#### 2019-1-22
- [x] 功能在Allsimon拉请求中添加英文简介
#### 2019-1-21
- [x] 功能Cupertino的子项
#### 2019-1-20
- [x] 功能CupertinoSwitch演示
- [x] 功能:为搜索列表加入图标
- [x] 功能CupertinoSliverRefreshControl演示
- [x] 功能CupertinoSliverNavigationBar演示
#### 2019-1-18
- [x] 更新SharedPreferences保存数据和android设备布局溢出
- [x] 功能添加CupertinoScrollbar演示
- [x] 功能:第四页暂时用欢迎页替代。后期再开发
#### 2019-1-17
- [x] 添加:+许可证
#### 2019-1-16
- [x] 转换将README翻译为En语言环境
- [x] 功能CupertinoScrollbar演示
#### 2019-1-14
- [x] 添加:增加手册页面
- [x] 功能:文字演示
- [x] 重构:修改过的图标
- [x] 重构文档文章组件收藏新增webView
- [x] 重构:修改过的演示
- [x] 重构:代码视图
- [x] 更新:版本 和readme.md
- [x] 修改:添加代码视图
- [x] 功能:添加搜索历史记录板
- [x] 修改:列出加标头错误
#### 2019-1-15
- [x] 功能welcomepage
#### 2019-1-13
- [x] 添加:一些输入描述
- [x] 功能加入GridPaperSliverGrid
- [x] 重构修改db
- [x] 重构:删除数据库 TabBarView
- [x] 添加:网格视图
- [x] 修改checkbosListTile 错误
- [x] 修改:自动提示文案
- [x] 功能:增加免责声明,声明组件,自动弹出,左上角入口
- [x] 重构整理数据库初始逻辑判断数据库完整性判断是否存在已知的catwidgetcollection 三张表。
- [x] 修复DialogDemo无法关闭的问题
#### 2019-1-12
- [x] 修复icon没有但内容有的组件给补充了icon
- [x] 修改1.整理文件 2.修正分析
- [x] 更新flutter_rookie_book => flutter_go
- [x] 更新更新SearchInput文件名=> search_input
- [x] 修改:文件名称的大小写规范
- [x] 修改修正bottomNavigationBar iconButton警告

View File

@ -79,5 +79,3 @@ flutter优点主要包括
Powered by [阿里拍卖前端团队](https://github.com/alibaba-paimai-frontend)<img src="https://img.alicdn.com/tfs/TB1foEhAMHqK1RjSZJnXXbNLpXa-166-166.png" width=20 height=20>

View File

@ -16,7 +16,7 @@
FlutterApplication and put your custom class here. -->
<application
android:name="io.flutter.app.FlutterApplication"
android:label="菜鸟手册"
android:label="flutter go"
android:icon="@drawable/logo">
<activity
android:name=".MainActivity"

Binary file not shown.

View File

@ -10,7 +10,6 @@
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
333E5DAE7FC10AC69FEC26C0 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DDA792F029EDD7A11295D192 /* libPods-Runner.a */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */ = {isa = PBXBuildFile; fileRef = 2D5378251FAA1A9400D5DBA9 /* flutter_assets */; };
3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
@ -41,7 +40,6 @@
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
2D5378251FAA1A9400D5DBA9 /* flutter_assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = flutter_assets; path = Flutter/flutter_assets; sourceTree = SOURCE_ROOT; };
3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
@ -92,7 +90,6 @@
children = (
3B80C3931E831B6300D905FE /* App.framework */,
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
2D5378251FAA1A9400D5DBA9 /* flutter_assets */,
9740EEBA1CF902C7004384FC /* Flutter.framework */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
@ -209,7 +206,6 @@
files = (
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */,
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
);

View File

@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>菜鸟App</string>
<string>Flutter Go</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>

View File

@ -1,29 +0,0 @@
import 'package:flutter/material.dart';
//颜色配置
class AppColor{
static const int white = 0xFFFFFFFF;
static const int mainTextColor = 0xFF121917;
static const int subTextColor = 0xff959595;
}
//文本设置
class AppText{
static const middleSize = 16.0;
static const middleText = TextStyle(
color: Color(AppColor.mainTextColor),
fontSize: middleSize,
);
static const middleSubText = TextStyle(
color: Color(AppColor.subTextColor),
fontSize: middleSize,
);
}
class WidgetDemoColor {
static const int fontColor = 0xFF607173;
static const int iconColor = 0xFF607173;
static const int borderColor = 0xFFEFEFEF;
}

View File

@ -1,8 +0,0 @@
import 'package:event_bus/event_bus.dart';
EventBus eventBus = new EventBus();
class MyEvent {
String text;
MyEvent(this.text);
}

View File

@ -1,74 +0,0 @@
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
class WidgetDemo extends StatelessWidget {
final Widget child;
final String docUrl;
final String title;
final String codeUrl;
WidgetDemo(
{Key key,
@required this.title,
@required this.child,
@required this.codeUrl,
@required this.docUrl})
: super(key: key);
void _launchURL(String url) async {
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
@override
Widget build(BuildContext context,[bottomNaviBar]) {
return Scaffold(
appBar: new AppBar(
title: Text(title),
actions: <Widget>[
new IconButton(
tooltip: 'widget doc',
onPressed: (){
_launchURL(docUrl);
},
icon: Icon(Icons.library_books),
),
new IconButton(
tooltip: 'github code',
onPressed: (){
_launchURL(codeUrl);
},
icon: Icon(Icons.code),
),
new IconButton(
tooltip: 'goBack home',
onPressed: (){
Navigator.popUntil(context, ModalRoute.withName('/'));
},
icon: Icon(Icons.home),
),
],
),
body: new Container(
padding: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 15.0),
child: ListView(
shrinkWrap: true,
padding: const EdgeInsets.all(0.0),
children: <Widget>[
Column(
children: <Widget>[
SizedBox(
height: 10.0,
),
child,
],
),
])
),
bottomNavigationBar: (bottomNaviBar is Widget)?bottomNaviBar:null
);
}
}

View File

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import '../model/cat.dart';
import '../common/widget_name_to_icon.dart';
import '../resources/widget_name_to_icon.dart';
import '../components/widget_item_container.dart';
class CateCard extends StatefulWidget {

View File

@ -1,99 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter_go/views/Detail.dart';
class CompList extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return new ListState();
}
}
class ListState extends State<CompList> {
@override
Widget build(BuildContext context) {
/// getData() ; this is test;
return new ListView.builder(
//itemCount: data == null ? 0 : data.length,
itemCount: 100,
itemBuilder: (BuildContext context, int index) {
return new Card(
/////child: new Container(
/////padding: new EdgeInsets.all(10.0),
child: new ListTile(
subtitle: new Container(
child: new Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
new Expanded(
child: new Text("Title",
///data[index]["title"],
style: new TextStyle(
fontWeight: FontWeight.bold, fontSize: 16.0)),
)
],
),
new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
new Text("time:"),
new Text("2018-05-06")
],
),
],
),
new Row(
children: <Widget>[
new Container(
padding:
const EdgeInsets.fromLTRB(0.0, 8.0, 0.0, 2.0),
child: new Text("content"),
///child: new Text("id:"+data[index]["id"].toString()),
),
],
),
],
),
),
trailing: new Icon(
Icons.keyboard_arrow_right,
color: Colors.grey,
),
///onTap: () => _onTap(data[index]["id"].toString()),
onTap: () => _onTap('1'),
),
/////),
);
},
);
}
void _onTap(String id){
Navigator.of(context).push(new PageRouteBuilder(
opaque: false,
pageBuilder: (BuildContext context, _,__){
return new Detail(id);
},
transitionsBuilder: (_,Animation<double> animation,__,Widget child){
return new FadeTransition(
opacity: animation,
child: new SlideTransition(position: new Tween<Offset>(
begin: const Offset(0.0, 1.0),
end: Offset.zero,
).animate(animation),child: child,
),
) ;
}
));
}
}

View File

@ -5,11 +5,10 @@
* Time: 下午9:19
* email: zhu.yan@alibaba-inc.com
*/
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
//import 'package:flutter_rookie_book/model/collection_general.dart';
//import 'package:flutter_rookie_book/model/collection_general.dart';
import 'dart:async';
const disclaimerText1 =
'\r\r\r\r\r\r本APP属于个人的非赢利性开源项目以供开源社区使用凡本APP转载的所有的文章 、图片、音频、视频文件等资料的版权归版权所有人所有本APP采用的非本站原创文章及图片等内容无法一一和版权者联系如果本网所选内容的文章作者及编辑认为其作品不宜上网供大家浏览或不应无偿使用请及时用电子邮件或电话通知我们以迅速采取适当措施避免给双方造成不必要的经济损失。';

View File

@ -5,8 +5,8 @@
* @Last Modified time: 2019-01-14 14:42:00
*/
import 'package:flutter/material.dart';
import 'example_code_parser.dart';
import 'syntax_highlighter.dart';
import 'package:flutter_go/utils/example_code_parser.dart';
import 'package:flutter_go/utils/syntax_highlighter.dart';
class FullScreenCodeDialog extends StatefulWidget {
const FullScreenCodeDialog({this.filePath});

View File

@ -7,6 +7,7 @@
* tartget: FlatButton 的示例
*/
import 'package:flutter/material.dart';
import 'dart:async';
class ListRefresh extends StatefulWidget {
final renderItem;

View File

@ -1,5 +1,5 @@
import 'package:flutter_markdown/flutter_markdown.dart' as md;
import '../common/high_light_code.dart';
import 'package:flutter_go/utils/high_light_code.dart';
import 'package:flutter/material.dart';
/// 使用方法

View File

@ -9,9 +9,8 @@ import '../routers/routers.dart';
import '../components/markdown.dart';
import '../model/collection.dart';
import '../widgets/index.dart';
import 'package:fluttertoast/fluttertoast.dart';
import '../event/event-bus.dart';
import '../event/event-model.dart';
import '../event/event_bus.dart';
import '../event/event_model.dart';
import 'dart:core';
class WidgetDemo extends StatefulWidget {
@ -27,8 +26,7 @@ class WidgetDemo extends StatefulWidget {
@required this.contentList,
@required this.codeUrl,
@required this.docUrl,
this.bottomNaviBar
})
this.bottomNaviBar})
: super(key: key);
_WidgetDemoState createState() => _WidgetDemoState();
@ -40,17 +38,7 @@ class _WidgetDemoState extends State<WidgetDemo> {
var _collectionIcons;
List widgetDemosList = new WidgetDemoList().getDemos();
String _router = '';
void showInSnackBar(String value) {
Fluttertoast.showToast(
msg: value,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIos: 1,
backgroundColor: Colors.grey,
textColor: Colors.white);
}
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
List<Widget> _buildContent() {
List<Widget> _list = [
@ -99,8 +87,8 @@ class _WidgetDemoState extends State<WidgetDemo> {
setState(() {
_hasCollected = false;
});
showInSnackBar('已取消收藏');
_scaffoldKey.currentState
.showSnackBar(SnackBar(content: Text('已取消收藏')));
if (ApplicationEvent.event != null) {
ApplicationEvent.event
.fire(CollectionEvent(widget.title, _router, true));
@ -124,7 +112,8 @@ class _WidgetDemoState extends State<WidgetDemo> {
.fire(CollectionEvent(widget.title, _router, false));
}
showInSnackBar('收藏成功');
_scaffoldKey.currentState
.showSnackBar(SnackBar(content: Text('收藏成功')));
}
});
}
@ -133,10 +122,11 @@ class _WidgetDemoState extends State<WidgetDemo> {
void _selectValue(value) {
if (value == 'doc') {
// _launchURL(widget.docUrl);
Application.router.navigateTo(context, '${Routes.webViewPage}?title=${Uri.encodeComponent(widget.title)} Doc&&url=${Uri.encodeComponent(widget.docUrl)}');
Application.router.navigateTo(context,
'${Routes.webViewPage}?title=${Uri.encodeComponent(widget.title)} Doc&&url=${Uri.encodeComponent(widget.docUrl)}');
} else if (value == 'code') {
Application.router.navigateTo(context, '${Routes.codeView}?filePath=${Uri.encodeComponent(widget.codeUrl)}');
Application.router.navigateTo(context,
'${Routes.codeView}?filePath=${Uri.encodeComponent(widget.codeUrl)}');
}
}
@ -148,6 +138,7 @@ class _WidgetDemoState extends State<WidgetDemo> {
_collectionIcons = Icons.favorite_border;
}
return Scaffold(
key: _scaffoldKey,
appBar: AppBar(
title: Text(widget.title),
actions: <Widget>[
@ -169,7 +160,10 @@ class _WidgetDemoState extends State<WidgetDemo> {
const PopupMenuItem<String>(
value: 'doc',
child: ListTile(
leading: Icon(Icons.library_books,size: 22.0,),
leading: Icon(
Icons.library_books,
size: 22.0,
),
title: Text('查看文档'),
),
),
@ -177,7 +171,10 @@ class _WidgetDemoState extends State<WidgetDemo> {
const PopupMenuItem<String>(
value: 'code',
child: ListTile(
leading: Icon(Icons.code,size: 22.0,),
leading: Icon(
Icons.code,
size: 22.0,
),
title: Text('查看Demo'),
),
),
@ -197,8 +194,7 @@ class _WidgetDemoState extends State<WidgetDemo> {
],
),
),
bottomNavigationBar: (widget.bottomNaviBar is Widget) ? widget
.bottomNaviBar : null
);
bottomNavigationBar:
(widget.bottomNaviBar is Widget) ? widget.bottomNaviBar : null);
}
}

View File

@ -2,8 +2,8 @@
* @author 一凨
*/
import 'package:flutter/material.dart';
import '../common/style.dart';
import '../common/widget_name_to_icon.dart';
import 'package:flutter_go/utils/style.dart';
import 'package:flutter_go/resources/widget_name_to_icon.dart';
String _widgetName;
@ -13,9 +13,15 @@ class WidgetItem extends StatelessWidget {
final int index; //用于计算border
final int totalCount;
final int rowLength;
final String textSize;
WidgetItem(
{this.title, this.onTap, this.index, this.totalCount, this.rowLength});
{this.title,
this.onTap,
this.index,
this.totalCount,
this.rowLength,
this.textSize});
Border _buildBorder(context) {
Border _border;
@ -64,6 +70,9 @@ class WidgetItem extends StatelessWidget {
Icons.crop,
);
}
final textStyle = (textSize == 'middle')
? TextStyle(fontSize: 13.8, fontFamily: 'MediumItalic')
: TextStyle(fontSize: 16.0);
return InkWell(
onTap: onTap,
child: Container(
@ -80,7 +89,7 @@ class WidgetItem extends StatelessWidget {
SizedBox(
height: 8.0,
),
Text(_widgetName),
Text(_widgetName, style: textStyle),
],
),
),

View File

@ -7,6 +7,7 @@ class WidgetItemContainer extends StatelessWidget {
final int columnCount; //一行几个
final List<dynamic> categories;
final bool isWidgetPoint;
// 所有的可用demos;
final List widgetDemosList = new WidgetDemoList().getDemos();
@ -50,6 +51,7 @@ class WidgetItemContainer extends StatelessWidget {
index: addI,
totalCount: length,
rowLength: columnCount,
textSize: isWidgetPoint ? 'middle' : 'small',
),
),
);

View File

@ -1,78 +0,0 @@
import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
// ignore_for_file: non_constant_identifier_names
// ignore_for_file: camel_case_types
// ignore_for_file: prefer_single_quotes
//This file is automatically generated. DO NOT EDIT, all your changes would be lost.
class S implements WidgetsLocalizations {
const S();
static const GeneratedLocalizationsDelegate delegate =
const GeneratedLocalizationsDelegate();
static S of(BuildContext context) =>
Localizations.of<S>(context, WidgetsLocalizations);
@override
TextDirection get textDirection => TextDirection.ltr;
}
class en extends S {
const en();
}
class GeneratedLocalizationsDelegate extends LocalizationsDelegate<WidgetsLocalizations> {
const GeneratedLocalizationsDelegate();
List<Locale> get supportedLocales {
return const <Locale>[
const Locale("en", ""),
];
}
LocaleResolutionCallback resolution({Locale fallback}) {
return (Locale locale, Iterable<Locale> supported) {
final Locale languageLocale = new Locale(locale.languageCode, "");
if (supported.contains(locale))
return locale;
else if (supported.contains(languageLocale))
return languageLocale;
else {
final Locale fallbackLocale = fallback ?? supported.first;
return fallbackLocale;
}
};
}
@override
Future<WidgetsLocalizations> load(Locale locale) {
final String lang = getLang(locale);
switch (lang) {
case "en":
return new SynchronousFuture<WidgetsLocalizations>(const en());
default:
return new SynchronousFuture<WidgetsLocalizations>(const S());
}
}
@override
bool isSupported(Locale locale) => supportedLocales.contains(locale);
@override
bool shouldReload(GeneratedLocalizationsDelegate old) => false;
}
String getLang(Locale l) => l.countryCode != null && l.countryCode.isEmpty
? l.languageCode
: l.toString();

View File

@ -3,7 +3,7 @@ import 'package:fluro/fluro.dart';
import 'package:flutter/rendering.dart';
import 'routers/routers.dart';
import 'routers/application.dart';
import 'common/provider.dart';
import 'package:flutter_go/utils/provider.dart';
import 'views/welcome_page/index.dart';

View File

@ -1,6 +1,6 @@
import 'dart:async';
import '../common/sql.dart';
import 'package:flutter_go/utils/sql.dart';
abstract class CatInterface{
int get id;

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2019-01-08 17:37:42
*/
import 'dart:async';
import '../common/sql.dart';
import 'package:flutter_go/utils/sql.dart';
abstract class CollectionInterface {
String get name;

View File

@ -1,68 +0,0 @@
/**
* Created with Android Studio.
* User: 一晟
* Date: 2019/1/12
* Time: 下午9:19
* email: zhu.yan@alibaba-inc.com
*/
import 'dart:async';
import '../common/sql.dart';
abstract class CollectionInterface {
String get key;
String get values;
}
class CollectionGeneral implements CollectionInterface {
String key;
String values;
CollectionGeneral({this.key, this.values});
factory CollectionGeneral.fromJSON(Map json){
return CollectionGeneral(key: json['name'],values: json['values']);
}
Object toMap() {
return {'key': key, 'values': values};
}
}
class CollectionControlModel {
final String table = 'collectionGeneral';
Sql sql;
CollectionControlModel() {
sql = Sql.setTable(table);
}
// 获取所有的收藏
// 插入新收藏
Future insert(CollectionGeneral collection) {
var result =
sql.insert({'key': collection.key, 'values': collection.values});
return result;
}
// 获取全部的收藏
Future<List<CollectionGeneral>> getAllCollection() async {
List list = await sql.getByCondition();
List<CollectionGeneral> resultList = [];
list.forEach((item){
resultList.add(CollectionGeneral.fromJSON(item));
});
return resultList;
}
// 通过收藏名获取router
Future getRouterByName(String key) async {
List list = await sql.getByCondition(conditions: {'key': key});
return list;
}
// 删除
Future deleteByName(String key) async{
return await sql.delete(key,'key');
}
}

View File

@ -1,6 +1,6 @@
import 'dart:async';
import '../common/sql.dart';
import 'package:flutter_go/utils/sql.dart';
import "package:flutter/material.dart";
abstract class WidgetInterface {

View File

@ -157,12 +157,12 @@ class WidgetName2Icon {
"CupertinoPopupSurface":Icons.center_focus_weak,
"CupertinoScrollbar": Icons.fullscreen,
"CupertinoSlider": Icons.switch_camera,
"CupertinoSegmentedControl": Icons.radio_button_checked,
"CupertinoSegmentedControl": Icons.business_center,
"CupertinoSliverNavigationBar": Icons.subtitles,
"CupertinoSwitch": Icons.check_box,
"CupertinoSwitch": Icons.radio_button_checked,
"CupertinoTabBar": Icons.tab,
"CupertinoTabScaffold": Icons.tab,
"CupertinoTabView": Icons.table_chart,
"CupertinoTabScaffold": Icons.crop_original,
"CupertinoTabView": Icons.tablet,
"CupertinoTimerPicker": Icons.timer
};
}

View File

@ -1,10 +1,10 @@
import 'package:flutter/material.dart';
import 'package:fluro/fluro.dart';
import '../views/category.dart';
import 'package:flutter_go/components/category.dart';
import '../widgets/404.dart';
import '../common/full_screen_code_dialog.dart';
import '../views/web_view_page.dart';
import '../views/home.dart';
import 'package:flutter_go/components/full_screen_code_dialog.dart';
import 'package:flutter_go/views/web_page/web_view_page.dart';
import 'package:flutter_go/views/first_page/home.dart';
// app的首页
var homeHandler = new Handler(

View File

@ -9,7 +9,7 @@
// found in the LICENSE file.
import 'dart:async';
import '../routers/application.dart';
import 'package:flutter_go/routers/application.dart';
import 'package:flutter/services.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:flutter/material.dart';

View File

@ -59,7 +59,6 @@ class Provider {
//Get a location using getDatabasesPath
String databasesPath = await getDatabasesPath();
String path = join(databasesPath, 'flutter.db');
try {
db = await openDatabase(path);
} catch (e) {

View File

@ -1,22 +0,0 @@
import 'package:flutter/material.dart';
class Detail extends StatelessWidget {
final String id ;
Detail(this.id) ;
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('List Detail'),
),
body: new Center(
child: new Text('msg:'+ 'id='+id),
),
) ;
}
}

View File

@ -5,11 +5,11 @@
* @Last Modified time: 2019-01-14 20:13:28
*/
import 'package:flutter/material.dart';
import '../model/collection.dart';
import '../routers/application.dart';
import '../routers/routers.dart';
import '../event/event-bus.dart';
import '../event/event-model.dart';
import 'package:flutter_go/model/collection.dart';
import 'package:flutter_go/routers/application.dart';
import 'package:flutter_go/routers/routers.dart';
import 'package:flutter_go/event/event_bus.dart';
import 'package:flutter_go/event/event_model.dart';
import 'package:event_bus/event_bus.dart';
class CollectionPage extends StatefulWidget {

View File

@ -1,22 +0,0 @@
import 'package:flutter/material.dart';
class Detail extends StatelessWidget {
final String id ;
Detail(this.id) ;
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('List Detail'),
),
body: new Center(
child: new Text('msg:'+ 'id='+id),
),
) ;
}
}

View File

@ -1,13 +1,13 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_go/common/list_view_item.dart';
import 'package:flutter_go/components/list_view_item.dart';
import 'package:flutter_go/components/list_refresh.dart' as listComp;
import 'package:flutter_go/components/pagination.dart';
import 'package:flutter_go/components/first_page_item.dart';
import 'package:flutter_go/views/first_page/first_page_item.dart';
import 'package:flutter_go/components/disclaimer_msg.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../common/net_utils.dart';
import 'package:flutter_go/utils/net_utils.dart';
GlobalKey<DisclaimerMsgState> key;

View File

@ -7,7 +7,7 @@
* tartget: FirstPageItem
*/
import '../common/Util.dart';
import 'package:flutter_go/utils/util.dart';
class FirstPageItem {
bool hot;

View File

@ -12,16 +12,16 @@
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'first_page.dart';
import 'widget_page.dart';
import 'package:flutter_go/views/first_page/first_page.dart';
import 'package:flutter_go/views/widget_page/widget_page.dart';
import 'package:flutter_go/views/welcome_page/fourth_page.dart';
import 'collection_page.dart';
import '../routers/application.dart';
import '../common/provider.dart';
import '../model/widget.dart';
import '../widgets/index.dart';
import 'package:flutter_go/views/collection_page/collection_page.dart';
import 'package:flutter_go/routers/application.dart';
import 'package:flutter_go/utils//provider.dart';
import 'package:flutter_go/model/widget.dart';
import 'package:flutter_go/widgets/index.dart';
import 'package:flutter_go/components/search_input.dart';
import '../common/widget_name_to_icon.dart';
import 'package:flutter_go/resources/widget_name_to_icon.dart';
const int ThemeColor = 0xFFC91B3A;

View File

@ -3,7 +3,7 @@ import 'dart:async';
import 'dart:ui';
import 'package:flutter/material.dart';
import './pager_indicator.dart';
import 'package:flutter_go/views/fourth_page/pager_indicator.dart';
class PageDragger extends StatefulWidget {

View File

@ -46,7 +46,6 @@ class CircleRevealClipper extends CustomClipper<Rect>{
@override
bool shouldReclip(CustomClipper<Rect> oldClipper) {
// TODO: implement shouldReclip
return true;
}

View File

@ -1,7 +1,7 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import './pages.dart';
import 'package:flutter_go/views/fourth_page/pages.dart';
class PagerIndicator extends StatelessWidget {

View File

@ -6,10 +6,9 @@
*/
import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
import '../model/collection.dart';
import '../event/event-bus.dart';
import '../event/event-model.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:flutter_go/model/collection.dart';
import 'package:flutter_go/event/event_bus.dart';
import 'package:flutter_go/event/event_model.dart';
import 'dart:core';
class WebViewPage extends StatefulWidget {
@ -26,21 +25,13 @@ class _WebViewPageState extends State<WebViewPage> {
var _collectionIcons;
CollectionControlModel _collectionControl = new CollectionControlModel();
void showInSnackBar(String value) {
Fluttertoast.showToast(
msg: value,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIos: 1,
backgroundColor: Colors.grey,
textColor: Colors.white);
}
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_collectionControl.getRouterByName(Uri.encodeComponent(widget.title.trim())).then((list) {
_collectionControl
.getRouterByName(Uri.encodeComponent(widget.title.trim()))
.then((list) {
list.forEach((item) {
if (widget.title.trim() == item['name']) {
_router = item['router'];
@ -58,13 +49,15 @@ class _WebViewPageState extends State<WebViewPage> {
_getCollection() {
if (_hasCollected) {
//
_collectionControl.deleteByName(Uri.encodeComponent(widget.title.trim())).then((result) {
_collectionControl
.deleteByName(Uri.encodeComponent(widget.title.trim()))
.then((result) {
if (result > 0 && this.mounted) {
setState(() {
_hasCollected = false;
});
showInSnackBar('已取消收藏');
_scaffoldKey.currentState
.showSnackBar(SnackBar(content: Text('已取消收藏')));
if (ApplicationEvent.event != null) {
ApplicationEvent.event
.fire(CollectionEvent(widget.title, _router, true));
@ -76,7 +69,9 @@ class _WebViewPageState extends State<WebViewPage> {
} else {
//
_collectionControl
.insert(Collection(name:Uri.encodeComponent(widget.title.trim()) , router: widget.url))
.insert(Collection(
name: Uri.encodeComponent(widget.title.trim()),
router: widget.url))
.then((result) {
if (this.mounted) {
setState(() {
@ -87,8 +82,8 @@ class _WebViewPageState extends State<WebViewPage> {
ApplicationEvent.event
.fire(CollectionEvent(widget.title, _router, false));
}
showInSnackBar('收藏成功');
_scaffoldKey.currentState
.showSnackBar(SnackBar(content: Text('收藏成功')));
}
});
}
@ -101,21 +96,26 @@ class _WebViewPageState extends State<WebViewPage> {
} else {
_collectionIcons = Icons.favorite_border;
}
return WebviewScaffold(
url: widget.url,
return Scaffold(
key: _scaffoldKey,
appBar: AppBar(
title: Text(widget.title),
actions: <Widget>[
new IconButton(
tooltip: 'goBack home',
onPressed: _getCollection,
icon: Icon(_collectionIcons,),
icon: Icon(
_collectionIcons,
),
),
],
),
body: WebviewScaffold(
url: widget.url,
withZoom: false,
withLocalStorage: true,
withJavascript: true,
),
);
}
}

View File

@ -1,10 +1,10 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_go/components/fourth_page_feature/page_dragger.dart';
import 'package:flutter_go/components/fourth_page_feature/page_reveal.dart';
import 'package:flutter_go/components/fourth_page_feature/pager_indicator.dart';
import 'package:flutter_go/components/fourth_page_feature/pages.dart';
import 'package:flutter_go/views/fourth_page/page_dragger.dart';
import 'package:flutter_go/views/fourth_page/page_reveal.dart';
import 'package:flutter_go/views/fourth_page/pager_indicator.dart';
import 'package:flutter_go/views/fourth_page/pages.dart';
class FourthPage extends StatefulWidget {
@override

View File

@ -6,7 +6,7 @@
*/
import 'package:flutter/material.dart';
import 'package:flutter_go/components/cate_card.dart';
import '../model/cat.dart';
import 'package:flutter_go/model/cat.dart';
class WidgetPage extends StatefulWidget {
final db;

View File

@ -6,7 +6,7 @@
* email: zhu.yan@alibaba-inc.com
* tartget: AppBar 的示例
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';

View File

@ -6,7 +6,7 @@
* email: zhu.yan@alibaba-inc.com
* tartget: BottomAppBar 的示例
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';

View File

@ -6,7 +6,7 @@
* email: zhu.yan@alibaba-inc.com
* tartget: ButtonBar 的示例
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';

View File

@ -6,7 +6,7 @@
* email: zhu.yan@alibaba-inc.com
* tartget: FlexibleSpaceBar 的示例
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';

View File

@ -6,7 +6,7 @@
* email: zhu.yan@alibaba-inc.com
* tartget: SliverAppBar 的示例
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';

View File

@ -6,7 +6,7 @@
* email: zhu.yan@alibaba-inc.com
* tartget: SnackBar 的示例
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';

View File

@ -6,7 +6,7 @@
* email: sanfan.hx@alibaba-inc.com
* tartget: SnackBarAction 的示例
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';
import './demo.dart' as SnackBarDemo;

View File

@ -6,7 +6,7 @@
* email: sanfan.hx@alibaba-inc.com
* tartget: SnackBarAction 的示例
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';
import './demo.dart';

View File

@ -6,7 +6,7 @@
* email: zhu.yan@alibaba-inc.com
* tartget: Card 的示例
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-18 15:13:23
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'demo.dart';
const String content0 = '''

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-18 15:14:03
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'demo.dart';
const String content0 = '''

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-18 17:38:56
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'demo.dart';
const String content0 = '''

View File

@ -6,7 +6,7 @@
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'demo.dart';
const String content0 = '''

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-21 10:25:22
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'demo.dart';
const String content0 = '''

View File

@ -6,7 +6,7 @@
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'demo.dart';
const String content0 = '''

View File

@ -6,7 +6,7 @@
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'demo.dart';
const String content0 = '''

View File

@ -6,7 +6,7 @@
* email: sanfan.hx@alibaba-inc.com
* tartget: xxx
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';
import 'demo.dart';

View File

@ -6,7 +6,7 @@
* email: sanfan.hx@alibaba-inc.com
* tartget: xxx
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';
import 'demo.dart';

View File

@ -6,7 +6,7 @@
* email: sanfan.hx@alibaba-inc.com
* tartget: xxx
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';
import 'demo.dart';

View File

@ -6,7 +6,7 @@
* email: sanfan.hx@alibaba-inc.com
* tartget: xxx
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';
import 'demo.dart';

View File

@ -6,7 +6,7 @@
* email: sanfan.hx@alibaba-inc.com
* tartget: xxx
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';
import 'demo.dart';

View File

@ -6,7 +6,7 @@
* email: sanfan.hx@alibaba-inc.com
* tartget: xxx
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';
import 'demo.dart';

View File

@ -6,7 +6,7 @@
* email: sanfan.hx@alibaba-inc.com
* tartget: xxx
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';
import 'demo.dart';

View File

@ -6,7 +6,7 @@
* email: sanfan.hx@alibaba-inc.com
* tartget: xxx
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';
import 'demo.dart';

View File

@ -6,7 +6,7 @@
* email: sanfan.hx@alibaba-inc.com
* tartget: xxx
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';
import 'demo.dart';

View File

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import './model.dart';
import 'package:flutter_go/widgets/components/LIst/AnimatedList/model.dart';
class AnimatedListFullDefault extends StatefulWidget {
AnimatedListFullDefault({Key key, this.parent}) : super(key: key);

View File

@ -6,7 +6,7 @@
* email: zhu.yan@alibaba-inc.com
* tartget: AnimatedList 的示例
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';

View File

@ -6,7 +6,7 @@
* email: zhu.yan@alibaba-inc.com
* tartget: ListBody 的示例
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';

View File

@ -6,7 +6,7 @@
* email: zhu.yan@alibaba-inc.com
* tartget: ListView 的示例
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-27 15:37:04
*/
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
//import 'package:fluttertoast/fluttertoast.dart';
class CheckedPopupMenuItemDemo extends StatefulWidget {
_CheckedPopupMenuItemDemoState createState() =>
@ -26,27 +26,18 @@ class _CheckedPopupMenuItemDemoState extends State<CheckedPopupMenuItemDemo> {
_checkedValues = <String>[_checkedValue3];
}
void showInSnackBar(String value){
Fluttertoast.showToast(
msg: value,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIos: 1,
backgroundColor: Colors.grey,
textColor: Colors.white
);
}
bool isChecked(String value) => _checkedValues.contains(value);
void showCheckedMenuSelections(String value){
if(_checkedValues.contains(value)){
_checkedValues.remove(value);
}else{
_checkedValues.add(value);
}
showInSnackBar('Checked $_checkedValues');
Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text('Checked $_checkedValues')));
}
@override

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-22 21:26:54
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import './demo.dart';
const String content0 = '''

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-27 14:51:44
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import './demo.dart';

View File

@ -5,7 +5,6 @@
* @Last Modified time: 2018-12-27 15:39:35
*/
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
class PopupMenuButtonDemo extends StatefulWidget {
_PopupMenuButtonDemoState createState() => _PopupMenuButtonDemoState();
@ -20,18 +19,11 @@ class _PopupMenuButtonDemoState extends State<PopupMenuButtonDemo> {
void showMenuSelection(String value) {
if (<String>[_simpleValue1, _simpleValue2, _simpleValue3].contains(value))
_simpleValue = value;
showInSnackBar('You selected: $value');
Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text('You selected: $value')));
}
void showInSnackBar(String value) {
Fluttertoast.showToast(
msg: value,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIos: 1,
backgroundColor: Colors.grey,
textColor: Colors.white);
}
@override
void initState() {

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-27 15:44:31
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import './demo.dart';
const String content0 = '''

View File

@ -5,23 +5,16 @@
* @Last Modified time: 2018-12-27 15:45:26
*/
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
class PopupMenuDividerDemo extends StatelessWidget {
void showInSnackBar(String value) {
Fluttertoast.showToast(
msg: value,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIos: 1,
backgroundColor: Colors.grey,
textColor: Colors.white);
class PopupMenuDividerDemo extends StatefulWidget {
_PopupMenuDividerDemoState createState() => _PopupMenuDividerDemoState();
}
class _PopupMenuDividerDemoState extends State<PopupMenuDividerDemo> {
void showInSnackBar(String value) {
Scaffold.of(context)
.showSnackBar(new SnackBar(content: new Text('You selected: $value')));
}
@override
Widget build(BuildContext context) {
@ -36,34 +29,23 @@ class PopupMenuDividerDemo extends StatelessWidget {
value: 'Preview',
child: ListTile(
leading: Icon(Icons.visibility),
title: Text('Preview')
)
),
title: Text('Preview'))),
const PopupMenuItem<String>(
value: 'Share',
child: ListTile(
leading: Icon(Icons.person_add),
title: Text('Share')
)
),
title: Text('Share'))),
const PopupMenuItem<String>(
value: 'Get Link',
child: ListTile(
leading: Icon(Icons.link),
title: Text('Get link')
)
),
title: Text('Get link'))),
const PopupMenuDivider(),
const PopupMenuItem<String>(
value: 'Remove',
child: ListTile(
leading: Icon(Icons.delete),
title: Text('Remove')
)
)
]
)
),
leading: Icon(Icons.delete), title: Text('Remove')))
])),
);
}
}

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-27 15:55:22
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import './demo.dart';
const String content0 = '''

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-27 16:06:20
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import '../PopupMenuDivider/demo.dart';
const String content0 = '''

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-29 15:07:16
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import '../PopupMenuDivider/demo.dart';
const String content0 = '''

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-29 16:22:06
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import '../PopupMenuDivider/demo.dart';
const String content0 = '''

View File

@ -8,7 +8,7 @@
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import './demo.dart' as BottomNavigationBarDemo;

View File

@ -6,7 +6,7 @@
* email: zhu.yan@alibaba-inc.com
* tartget: BottomNavigationBarItem 的示例
*/
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'package:flutter/material.dart';

View File

@ -6,7 +6,7 @@
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'demo.dart';
const String content0 = '''

View File

@ -6,7 +6,7 @@
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'demo.dart';
const String content0 = '''

View File

@ -6,7 +6,7 @@
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
// import 'demo.dart';
const String content0 = '''

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-17 15:50:02
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'demo.dart';
const String content0 = '''

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-17 17:06:34
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'demo.dart';
const String content0 = '''

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-17 16:00:07
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'demo.dart';
const String content0 = '''

View File

@ -5,7 +5,7 @@
* @Last Modified time: 2018-12-17 16:00:07
*/
import 'package:flutter/material.dart';
import '../../../../common/widget_demo.dart';
import 'package:flutter_go/components/widget_demo.dart';
import 'demo.dart';
const String content0 = '''

Some files were not shown because too many files have changed in this diff Show More