Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

优化路由,优化组件加载方式 #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
wanwusangzhi merged 1 commit into test from ysz
Feb 20, 2019
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
View file Open in desktop
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
View file Open in desktop
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
View file Open in desktop
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
View file Open in desktop
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
View file Open in desktop
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
View file Open in desktop
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
View file Open in desktop
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
View file Open in desktop

This file was deleted.

15 changes: 0 additions & 15 deletions lib/page/test/test_page_two.dart
View file Open in desktop

This file was deleted.

21 changes: 15 additions & 6 deletions lib/router/index.dart
View file Open in desktop
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
View file Open in desktop
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
View file Open in desktop

This file was deleted.

View file Open in desktop
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
View file Open in desktop
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

AltStyle によって変換されたページ (->オリジナル) /