Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions docs/widget/scrollview/gridview/code.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
### ***GridView***

> GridView可创建一个二维的网格布局
```

GridView({
Key key,
Axis scrollDirection: Axis.vertical,
bool reverse: false,
ScrollController controller,
bool primary,
ScrollPhysics physics,
bool shrinkWrap: false,
EdgeInsetsGeometry padding,
@required SliverGridDelegate gridDelegate,
bool addAutomaticKeepAlives: true,
bool addRepaintBoundaries: true,
bool addSemanticIndexes: true,
double cacheExtent,
List<Widget> children: const [],
int semanticChildCount
})
66 changes: 46 additions & 20 deletions docs/widget/scrollview/gridview/index.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,48 @@
### ***GridView***

> GridView可创建一个二维的网格布局
```

GridView({
Key key,
Axis scrollDirection: Axis.vertical,
bool reverse: false,
ScrollController controller,
bool primary,
ScrollPhysics physics,
bool shrinkWrap: false,
EdgeInsetsGeometry padding,
@required SliverGridDelegate gridDelegate,
bool addAutomaticKeepAlives: true,
bool addRepaintBoundaries: true,
bool addSemanticIndexes: true,
double cacheExtent,
List<Widget> children: const [],
int semanticChildCount
})
class _DemoState extends State<Demo> {
bool loading = true;
String ___MD___ = _mdUrl;

@override
void initState() {
super.initState();
this.initMd();
}

initMd() async {
String mdStr = await FileUtils.readLocaleFile(___MD___);
setState(() {
this.___MD___ = mdStr;
loading = false;
});
}

@override
Widget build(BuildContext context) {
return WidgetComp(
name: Demo.name,
codeUrl: Demo.codeUrl,
mdUrl: Demo.mdUrl,
loading: loading,
modelChild: (context, child, model) {
return [
___MD___,
Container(
color: Colors.teal.shade700,
alignment: Alignment.center,
child: Text(
'Hello WorldHello WorldHello WorldHello WorldHello World',
style: Theme.of(context)
.textTheme
.display1
.copyWith(color: Colors.white),
),
),
];
},
);
}
}

```
6 changes: 5 additions & 1 deletion lib/components/baseComp.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,11 @@ class BaseComp extends StatelessWidget {
appBar: AppBar(
title: Text(this.title),
),
body: this.child(context, child, model),
body: ListView(
children: [
this.child(context, child, model)
],
),
);
}
);
Expand Down
2 changes: 1 addition & 1 deletion lib/components/webviewComp.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class WebViewComp extends StatelessWidget {
return WebviewScaffold(
url: this.url,
appBar: new AppBar(
title: new Text("Widget webview"),
title: new Text("Webview"),
),
);
}
Expand Down
24 changes: 19 additions & 5 deletions lib/components/widgetLodingComp.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,25 @@ import 'package:flutter/material.dart';
import 'package:efox_flutter/store/STORE.dart';
import 'package:efox_flutter/components/markdownComp.dart';
import 'package:efox_flutter/lang/app_translations.dart';
import 'package:efox_flutter/components/baseComp.dart';
import 'package:efox_flutter/utils/file.dart' as FileUtils;
import 'package:efox_flutter/router/index.dart' show FluroRouter;

class WidgetComp extends StatelessWidget {
final List<Widget> _bodyList = [];
final dynamic modelChild;
final String codeUrl;
final String title;
final String mdUrl;
final String name;
final bool loading;

WidgetComp({
Key key,
this.title,
this.name,
@required this.modelChild,
this.loading,
this.codeUrl,
this.mdUrl,
}) : super(key: key);

@override
Expand All @@ -32,7 +36,7 @@ class WidgetComp extends StatelessWidget {
});
return Scaffold(
appBar: AppBar(
title: Text(this.title),
title: Text(this.name),
actions: <Widget>[
IconButton(
icon: Icon(
Expand All @@ -46,8 +50,18 @@ class WidgetComp extends StatelessWidget {
icon: Icon(
Icons.code,
),
onPressed: () {
print('prs');
onPressed: () async {
String mdStr = await FileUtils.readLocaleFile(this.mdUrl);
Navigator.of(context).push(MaterialPageRoute(
builder: (BuildContext context) {
return BaseComp(
title: this.name,
child: (context, child, model) {
return MarkDownComp(mdStr);
}
);
}
));
},
),
],
Expand Down
3 changes: 1 addition & 2 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,11 @@ import 'package:efox_flutter/lang/app_translations_delegate.dart';
import 'package:efox_flutter/store/store.dart';
//路由
import 'package:efox_flutter/router/index.dart';
import 'package:fluro/fluro.dart';
void main() => runApp(MainApp());

class MainApp extends StatefulWidget {
MainApp() {
FluroRouter.initRouter(Router());
FluroRouter.initRouter();
}
@override
MainAppState createState() => MainAppState();
Expand Down
19 changes: 3 additions & 16 deletions lib/page/tabbar/index.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import 'package:flutter/material.dart';
import 'package:efox_flutter/lang/app_translations.dart';
import 'dart:convert';
import 'package:flutter/services.dart' show rootBundle;
import 'package:efox_flutter/store/objects/widget_list.dart';
import 'package:efox_flutter/router/index.dart';
import 'package:efox_flutter/widget/index.dart' as WidgetRoot;

class ComponentsPage extends StatefulWidget {
_ComponentsPageState createState() => _ComponentsPageState();
Expand All @@ -16,18 +14,7 @@ class _ComponentsPageState extends State<ComponentsPage>
@override
initState() {
super.initState();
getWidgetList().then((res) {
setState(() {
mapList = res.list;
});
});
}

getWidgetList() async {
String widgetString = await rootBundle
.loadString('assets/json/widget_list.json', cache: false);
var _tmpMap = new WidgetListInfo.fromJson(json.decode(widgetString));
return _tmpMap;
this.mapList = WidgetRoot.getAllWidgets();
}

/**
Expand Down Expand Up @@ -75,7 +62,7 @@ class _ComponentsPageState extends State<ComponentsPage>
color: Colors.deepOrange,
),
onPressed: () {
FluroRouter.router.navigateTo(context, '/scrollview_gridview');
FluroRouter.router.navigateTo(context, _tmpWidgetList[index].routerName);
},
),
Text(_tmpWidgetList[index].name),
Expand Down
15 changes: 0 additions & 15 deletions lib/page/test/test_page_one.dart

This file was deleted.

15 changes: 0 additions & 15 deletions lib/page/test/test_page_two.dart

This file was deleted.

21 changes: 15 additions & 6 deletions lib/router/index.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,14 @@ import 'package:flutter/widgets.dart';
import 'package:fluro/fluro.dart';
//首页
import 'package:efox_flutter/page/home.dart';

import 'package:flutter/material.dart';
import 'package:efox_flutter/widget/index.dart' as WidgetConfig;
import 'handles.dart';
import 'scrollview/index.dart' as scrollview;

class FluroRouter {
static Router router;

static Router initRouter(Router router) {
FluroRouter.router = router;
static Router initRouter() {
FluroRouter.router = Router();
router.define(
'/',
handler: Handler(
Expand All @@ -23,7 +21,18 @@ class FluroRouter {

router.define('/webview', handler: webviewHandler);

scrollview.initRouter(router);
// 组件
WidgetConfig.getAllWidgets().forEach((widgetListInfo) {
widgetListInfo.widgetList.forEach((widgetInfo) {
router.define(
widgetInfo.routerName,
handler: Handler(
handlerFunc: (BuildContext context, Map<String, List> params) {
return widgetInfo.widget;
}),
);
});
});
return router;
}
}
6 changes: 3 additions & 3 deletions lib/router/scrollview/index.dart
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
import 'package:flutter/material.dart';
import 'package:efox_flutter/widget/scrollview/gridview/gridview.dart';
import 'package:efox_flutter/widget/scrollview/gridview/index.dart' as GridViewDemo;
import 'package:fluro/fluro.dart';

const nameSpaces = '/scrollview_';
const gridview = nameSpaces + 'gridview';

const routerMaps = {
gridview: '/widget/scrollview/gridview/gridview',
gridview: '/widget/scrollview/gridview/index',
};

void initRouter(router) {
router.define(
gridview,
handler: Handler(
handlerFunc: (BuildContext context, Map<String, dynamic> params) {
return GridViewDemo();
return GridViewDemo.Demo();
},
),
);
Expand Down
11 changes: 0 additions & 11 deletions lib/router/test/index.dart

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
import 'package:flutter/widgets.dart';
class ItemInfo extends Object {
int code;
String name;
String key;
String routerName;
Widget widget;
String webviewTitle;

ItemInfo({this.code, this.name, this.routerName, this.widget, this.webviewTitle});

ItemInfo.fromJson(Map<String, dynamic> json) {
code = json['code'];
name = json['name'];
key = json['key'];
widget = json['widget'];
routerName = json['routerName'];
webviewTitle = json['webviewTitle'];
}
}

Expand All @@ -15,6 +22,8 @@ class ItemListInfo {
int code;
List widgetList;

ItemListInfo({ this.typeName, this.code, this.widgetList});

ItemListInfo.fromJson(Map<String, dynamic> json) {
typeName = json['typeName'];
code = json['code'];
Expand Down
7 changes: 7 additions & 0 deletions lib/widget/index.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import 'scrollview/index.dart' as ScrollView;

List getAllWidgets() {
List routerMap =[];
routerMap.addAll(ScrollView.widgetMap);
return routerMap;
}
Loading