Merge branch 'develop' into dev/yisheng

# Conflicts:
#	lib/widgets/components/Bar/AppBar/index.dart
#	lib/widgets/components/Bar/BottomAppBar/demo.dart
#	lib/widgets/components/Bar/BottomAppBar/index.dart
#	lib/widgets/components/Bar/ButtonBar/index.dart
#	lib/widgets/components/Bar/FlexibleSpaceBar/index.dart
#	lib/widgets/components/Bar/SliverAppBar/index.dart
#	lib/widgets/components/Bar/SnackBar/index.dart
#	lib/widgets/components/Bar/SnackBarAction/index.dart
#	lib/widgets/components/Card/Card/index.dart
#	lib/widgets/components/LIst/ListBody/index.dart
#	lib/widgets/components/LIst/ListView/index.dart
#	lib/widgets/elements/Form/Button/DropdownButton/index.dart
#	lib/widgets/elements/Form/Button/FlatButton/index.dart
#	lib/widgets/elements/Form/Button/PopupMenuButton/index.dart
#	lib/widgets/elements/Form/CheckBox/Checkbox/index.dart
#	lib/widgets/elements/Form/CheckBox/CheckboxListTile/index.dart
#	lib/widgets/elements/Frame/Axis/crossAxis/index.dart
#	lib/widgets/elements/Frame/Axis/flipAxis/index.dart
#	lib/widgets/elements/Frame/Axis/mainAxis/index.dart
#	lib/widgets/elements/Media/Image/precacheImage/index.dart
This commit is contained in:
ryan730
2019-01-12 17:30:11 +08:00
130 changed files with 613 additions and 692 deletions

View File

@ -6,7 +6,6 @@
* email: zhu.yan@alibaba-inc.com
* tartget: DropdownButton 的示例
*/
import 'dart:math';
import 'package:flutter/material.dart';
/*
@ -14,15 +13,15 @@ import 'package:flutter/material.dart';
* isDisabled:是否是禁用isDisabled 默认为true
* */
class DropdownButtonDefault extends StatelessWidget {
List<DropdownMenuItem> generateItemList() {
List<DropdownMenuItem> items = new List();
DropdownMenuItem item1 = new DropdownMenuItem(
List<DropdownMenuItem> generateItemList() {
final List<DropdownMenuItem> items = new List();
final DropdownMenuItem item1 = new DropdownMenuItem(
value: '张三', child: new Text('张三'));
DropdownMenuItem item2 = new DropdownMenuItem(
final DropdownMenuItem item2 = new DropdownMenuItem(
value: '李四', child: new Text('李四'));
DropdownMenuItem item3 = new DropdownMenuItem(
final DropdownMenuItem item3 = new DropdownMenuItem(
value: '王二', child: new Text('王二'));
DropdownMenuItem item4 = new DropdownMenuItem(
final DropdownMenuItem item4 = new DropdownMenuItem(
value: '麻子', child: new Text('麻子'));
items.add(item1);
items.add(item2);

View File

@ -8,6 +8,7 @@
* 对应文档地址:https://docs.flutter.io/flutter/material/DropdownButton-class.html
*/
import '../../../../../common/widget_demo.dart';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
@ -56,7 +57,7 @@ class _DemoState extends State<Demo> {
}
}
/**
/*
* 所有的 DropdownButton 按钮
*/
Widget allDropdownButtons(BuildContext context,_DemoState that){

View File

@ -16,7 +16,7 @@ import 'package:flutter/material.dart';
class FlatButtonDefault extends StatelessWidget {
final bool isDisabled;
const FlatButtonDefault([bool this.isDisabled = true])
const FlatButtonDefault([ this.isDisabled = true])
: assert(isDisabled != null),
super();
@ -39,7 +39,7 @@ class FlatButtonIconDefault extends StatelessWidget {
final IconData icon;
const FlatButtonIconDefault(
[bool this.isDisabled = true, IconData this.icon = Icons.add_circle])
[ this.isDisabled = true, this.icon = Icons.add_circle])
: super();
Color _randomColor() {
@ -73,10 +73,10 @@ class FlatButtonCustom extends StatelessWidget {
final VoidCallback onPressed;
const FlatButtonCustom([
String this.txt = '自定义按钮',
Color this.color = Colors.blueAccent,
ShapeBorder this.shape,
VoidCallback this.onPressed
this.txt = '自定义按钮',
this.color = Colors.blueAccent,
this.shape,
this.onPressed
]) :super();
@override

View File

@ -8,39 +8,12 @@
* 对应文档地址:https://docs.flutter.io/flutter/material/FlatButton-class.html
*/
import '../../../../../common/widget_demo.dart';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import './demo.dart' as flatButton;
const String _markdownData = """# Markdown Example
Markdown allows you to easily include formatted text, images, and even formatted Dart code in your app.
## Styling
Style text as _italic_, __bold__, or `inline code`.
- Use bulleted lists
- To better clarify
- Your points
## Links
You can use [hyperlinks](hyperlink) in markdown
## Images
You can include images:
![Flutter logo](https://flutter.io/images/flutter-mark-square-100.png#100x100)
## Markdown widget
This is an example of how to create your own Markdown widget:
new Markdown(data: 'Hello _world_!');
## Code blocks
Formatted Dart code looks really pretty too:
```
void main() {
runApp(new MaterialApp(
home: new Scaffold(
body: new Markdown(data: markdownData)
)
));
}
```
Enjoy!
""";
const String _flatText0 =
@ -88,7 +61,7 @@ class _DemoState extends State<Demo> {
}
}
/**
/*
* 所有的 FlatButton 按钮
*/
Widget allFlatButtons(BuildContext context){

View File

@ -6,7 +6,6 @@
* email: zhu.yan@alibaba-inc.com
* tartget: OutlineButton 的示例
*/
import 'dart:math';
import 'package:flutter/material.dart';
/*
@ -16,7 +15,7 @@ import 'package:flutter/material.dart';
class FloatingActionButtonDefault extends StatelessWidget {
final bool isDisabled;
const FloatingActionButtonDefault([bool this.isDisabled = true])
const FloatingActionButtonDefault([ this.isDisabled = true])
: assert(isDisabled != null),
super();
@ -41,10 +40,10 @@ class FloatingActionButtonCustom extends StatelessWidget {
final VoidCallback onPressed;
const FloatingActionButtonCustom(
[String this.txt = '自定义按钮',
Color this.color = Colors.orange,
ShapeBorder this.shape,
VoidCallback this.onPressed])
[ this.txt = '自定义按钮',
this.color = Colors.orange,
this.shape,
this.onPressed])
: super();
@override
@ -93,10 +92,10 @@ class FloatingActionButtonCustom2 extends StatelessWidget {
final VoidCallback onPressed;
const FloatingActionButtonCustom2(
[String this.txt = '自定义按钮',
Color this.color = Colors.orange,
ShapeBorder this.shape,
VoidCallback this.onPressed])
[ this.txt = '自定义按钮',
this.color = Colors.orange,
this.shape,
this.onPressed])
: super();
@override

View File

@ -14,8 +14,6 @@ import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import './demo.dart' as floatingActionButton;
const String _floatingActionTitle =
'FloatingAction Button 示例';
const String _floatingActionText0 =
"""### **简介**
@ -68,7 +66,7 @@ class _DemoState extends State<Demo> {
}
}
/**
/*
* 所有的 FloatingActionButton 按钮
*/
Widget allFloatingActionButtons(BuildContext context,_DemoState that){
@ -105,26 +103,26 @@ Widget allFloatingActionButtons(BuildContext context,_DemoState that){
* alert 弹框
* context:容器的父级
* */
void _showMessage(String name, BuildContext context) {
showDialog(
// alert 的父级
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: new Text('提示'),
content: new Text(name),
actions: <Widget>[
new FlatButton(
// alert 的取消按钮
onPressed: () {
// 取消的事件
Navigator.of(context).pop(true);
},
child: new Text('取消'))
]);
}
);
}
// void _showMessage(String name, BuildContext context) {
// showDialog(
// // alert 的父级
// context: context,
// builder: (BuildContext context) {
// return AlertDialog(
// title: new Text('提示'),
// content: new Text(name),
// actions: <Widget>[
// new FlatButton(
// // alert 的取消按钮
// onPressed: () {
// // 取消的事件
// Navigator.of(context).pop(true);
// },
// child: new Text('取消'))
// ]);
// }
// );
// }
/*
* 带align的text

View File

@ -19,7 +19,7 @@ final int len = IconNames.Names.length;
class IconButtonDefault extends StatelessWidget {
final bool isDisabled;
const IconButtonDefault([bool this.isDisabled = true])
const IconButtonDefault([ this.isDisabled = true])
: assert(isDisabled != null),
super();
@ -43,10 +43,10 @@ class IconButtonCustom extends StatelessWidget {
final VoidCallback onPressed;
const IconButtonCustom(
[String this.txt = '自定义按钮',
Color this.color = Colors.blueAccent,
ShapeBorder this.shape,
VoidCallback this.onPressed])
[ this.txt = '自定义按钮',
this.color = Colors.blueAccent,
this.shape,
this.onPressed])
: super();
getIcons(){

View File

@ -60,7 +60,7 @@ class _DemoState extends State<Demo> {
}
}
/**
/*
* 所有的 IconButton 按钮
*/
Widget allIconButtons(BuildContext context,_DemoState that){

View File

@ -16,7 +16,7 @@ import 'package:flutter/material.dart';
class OutlineButtonDefault extends StatelessWidget {
final bool isDisabled;
const OutlineButtonDefault([bool this.isDisabled = true])
const OutlineButtonDefault([ this.isDisabled = true])
: assert(isDisabled != null),
super();
@ -39,7 +39,7 @@ class OutlineButtonIconDefault extends StatelessWidget {
final IconData icon;
const OutlineButtonIconDefault(
[bool this.isDisabled = true, IconData this.icon = Icons.add_circle])
[ this.isDisabled = true, this.icon = Icons.add_circle])
: super();
@override
@ -66,10 +66,10 @@ class OutlineButtonCustom extends StatelessWidget {
final VoidCallback onPressed;
const OutlineButtonCustom(
[String this.txt = '自定义按钮',
Color this.color = Colors.blueAccent,
ShapeBorder this.shape,
VoidCallback this.onPressed])
[ this.txt = '自定义按钮',
this.color = Colors.blueAccent,
this.shape,
this.onPressed])
: super();
@override

View File

@ -69,7 +69,7 @@ class _DemoState extends State<Demo> {
}
}
/**
/*
* 所有的 OutlineButton 按钮
*/
Widget allOutlineButtons(BuildContext context,_DemoState that){
@ -130,26 +130,26 @@ Widget allOutlineButtons(BuildContext context,_DemoState that){
* alert 弹框
* context:容器的父级
* */
void _showMessage(String name, BuildContext context) {
showDialog(
// alert 的父级
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: new Text('提示'),
content: new Text(name),
actions: <Widget>[
new FlatButton(
// alert 的取消按钮
onPressed: () {
// 取消的事件
Navigator.of(context).pop(true);
},
child: new Text('取消'))
]);
}
);
}
// void _showMessage(String name, BuildContext context) {
// showDialog(
// // alert 的父级
// context: context,
// builder: (BuildContext context) {
// return AlertDialog(
// title: new Text('提示'),
// content: new Text(name),
// actions: <Widget>[
// new FlatButton(
// // alert 的取消按钮
// onPressed: () {
// // 取消的事件
// Navigator.of(context).pop(true);
// },
// child: new Text('取消'))
// ]);
// }
// );
// }
/*
* 带align的text

View File

@ -6,7 +6,6 @@
* email: zhu.yan@alibaba-inc.com
* tartget: RaisedButton 的示例
*/
import 'dart:math';
import 'package:flutter/material.dart';
/*
@ -20,7 +19,7 @@ class PopupMenuButtonDefault extends StatelessWidget {
final String type;
const PopupMenuButtonDefault(
[String this.type = 'default1', bool this.isDisabled = true])
[ this.type = 'default1', this.isDisabled = true])
: assert(isDisabled != null),
super();
@ -107,7 +106,7 @@ class PopupMenuButtonCustom extends StatelessWidget {
label: Text(
'自定义按钮', style: TextStyle(color: Colors.white),
semanticsLabel: 'FLAT BUTTON'),
// onPressed:(){} // 激活状态按钮
onPressed:(){} // 激活状态按钮
),
// 打开时放置菜单的z坐标。这可以控制菜单下方阴影的大小。
elevation:10.0,

View File

@ -9,7 +9,7 @@
*/
import '../../../../../common/widget_demo.dart';
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import './demo.dart' as popupMenuButton;
@ -37,8 +37,9 @@ const String _titleText2 = """
class Demo extends StatefulWidget {
static const String routeName = '/element/Form/Button/PopupMenuButton';
final Map<String,String> options = {'defaultSelect': '选项二的内容'};
@override
final _DemoState self = _DemoState();
@override
_DemoState createState() => self;
}

View File

@ -16,7 +16,7 @@ import 'package:flutter/material.dart';
class RaisedButtonDefault extends StatelessWidget {
final bool isDisabled;
const RaisedButtonDefault([bool this.isDisabled = true])
const RaisedButtonDefault([ this.isDisabled = true])
: assert(isDisabled != null),
super();
@ -39,7 +39,7 @@ class RaisedButtonIconDefault extends StatelessWidget {
final IconData icon;
const RaisedButtonIconDefault(
[bool this.isDisabled = true, IconData this.icon = Icons.add_circle])
[ this.isDisabled = true, this.icon = Icons.add_circle])
: super();
Color _randomColor() {
@ -73,10 +73,10 @@ class RaisedButtonCustom extends StatelessWidget {
final VoidCallback onPressed;
const RaisedButtonCustom(
[String this.txt = '自定义按钮',
Color this.color = Colors.blueAccent,
ShapeBorder this.shape,
VoidCallback this.onPressed])
[ this.txt = '自定义按钮',
this.color = Colors.blueAccent,
this.shape,
this.onPressed])
: super();
@override

View File

@ -69,7 +69,7 @@ class _DemoState extends State<Demo> {
}
}
/**
/*
* 所有的 RaisedButton 按钮
*/
Widget allRaisedButtons(BuildContext context,_DemoState that){
@ -130,26 +130,26 @@ Widget allRaisedButtons(BuildContext context,_DemoState that){
* alert 弹框
* context:容器的父级
* */
void _showMessage(String name, BuildContext context) {
showDialog(
// alert 的父级
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: new Text('提示'),
content: new Text(name),
actions: <Widget>[
new FlatButton(
// alert 的取消按钮
onPressed: () {
// 取消的事件
Navigator.of(context).pop(true);
},
child: new Text('取消'))
]);
}
);
}
// void _showMessage(String name, BuildContext context) {
// showDialog(
// // alert 的父级
// context: context,
// builder: (BuildContext context) {
// return AlertDialog(
// title: new Text('提示'),
// content: new Text(name),
// actions: <Widget>[
// new FlatButton(
// // alert 的取消按钮
// onPressed: () {
// // 取消的事件
// Navigator.of(context).pop(true);
// },
// child: new Text('取消'))
// ]);
// }
// );
// }
/*
* 带align的text

View File

@ -16,7 +16,7 @@ import 'package:flutter/material.dart';
class RawMaterialButtonDefault extends StatelessWidget {
final bool isDisabled;
const RawMaterialButtonDefault([bool this.isDisabled = true])
const RawMaterialButtonDefault([ this.isDisabled = true])
: assert(isDisabled != null),
super();
@ -39,10 +39,10 @@ class RawMaterialButtonCustom extends StatelessWidget {
final VoidCallback onPressed;
const RawMaterialButtonCustom(
[String this.txt = '自定义按钮',
Color this.color = Colors.blueAccent,
ShapeBorder this.shape,
VoidCallback this.onPressed])
[ this.txt = '自定义按钮',
this.color = Colors.blueAccent,
this.shape,
this.onPressed])
: super();
@override

View File

@ -58,7 +58,7 @@ class _DemoState extends State<Demo> {
}
}
/**
/*
* 所有的 RawMaterialButton 按钮
*/
Widget allRawMaterialButtons(BuildContext context,_DemoState that){
@ -102,26 +102,26 @@ Widget allRawMaterialButtons(BuildContext context,_DemoState that){
* alert 弹框
* context:容器的父级
* */
void _showMessage(String name, BuildContext context) {
showDialog(
// alert 的父级
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: new Text('提示'),
content: new Text(name),
actions: <Widget>[
new FlatButton(
// alert 的取消按钮
onPressed: () {
// 取消的事件
Navigator.of(context).pop(true);
},
child: new Text('取消'))
]);
}
);
}
// void _showMessage(String name, BuildContext context) {
// showDialog(
// // alert 的父级
// context: context,
// builder: (BuildContext context) {
// return AlertDialog(
// title: new Text('提示'),
// content: new Text(name),
// actions: <Widget>[
// new FlatButton(
// // alert 的取消按钮
// onPressed: () {
// // 取消的事件
// Navigator.of(context).pop(true);
// },
// child: new Text('取消'))
// ]);
// }
// );
// }
/*
* 带align的text

View File

@ -16,7 +16,7 @@ import 'package:flutter/material.dart';
class CheckboxDefault extends StatefulWidget{
final int index;
final parent;
const CheckboxDefault([this.parent,int this.index = -1]) : super();
const CheckboxDefault([this.parent, this.index = -1]) : super();
@override
State<StatefulWidget> createState() =>_CheckboxDefault();
}
@ -47,7 +47,7 @@ class CheckboxSelect extends StatelessWidget {
final widget;
final parent;
const CheckboxSelect([this.widget,this.parent,int this.index = -1])
const CheckboxSelect([this.widget,this.parent, this.index = -1])
: super();
@override

View File

@ -8,7 +8,7 @@
* 对应文档地址:https://docs.flutter.io/flutter/material/Checkbox-class.html
*/
import '../../../../../common/widget_demo.dart';
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
@ -54,7 +54,7 @@ class _DemoState extends State<Demo> {
}
}
/**
/*
* 所有的 Checkbox 按钮
*/
Widget allCheckboxs(BuildContext context,_DemoState that){

View File

@ -7,7 +7,6 @@
* tartget: CheckboxListTile 的示例
*/
import 'dart:math';
import 'package:flutter/material.dart';
/*

View File

@ -7,9 +7,8 @@
* tartget: CheckboxListTile 的示例
*/
import '../../../../../common/widget_demo.dart';
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import './demo.dart' as CheckboxListTileDemo;
@ -38,7 +37,7 @@ const String _CheckboxListTileText2 =
class Demo extends StatefulWidget {
static const String routeName = '/element/Form/Checkbox/CheckboxListTile';
bool valBool = true;
final bool valBool = true;
@override
_DemoState createState() => _DemoState();
}
@ -55,7 +54,7 @@ class _DemoState extends State<Demo> {
}
}
/**
/*
* 所有的 CheckboxListTile widget
* context: 运行上下文
* that: 指向有状态的 StatefulWidget

View File

@ -10,48 +10,47 @@
import '../../../../../common/widget_demo.dart';
import 'package:flutter/material.dart';
import './text_field_demo.dart' ;
import './text_field_demo.dart';
const String _textFieldText0 =
"""### **简介**
> Text Field “文本字段”
- 文本字段允许用户输入文本,无论是硬件键盘还是屏幕键盘。
- 每当用户更改字段中的文本时文本字段就会调用Onchange的回调。
- 如果用户指示他们在字段中输入完成例如通过按软键盘上的按钮则文本字段调用onSubmitted回调。
const String _textFieldText0 = """### **简介**
> TextField 最常用的文本输入widget
- 该 widget 作为文本输入框,可以接收用户以屏幕按键或者键盘输入的文本信息,该信息可以用于消息传递,搜索体验等
- 用户修改文本信息时Onchange会被调用获取到最新的文本信息
- 已知用户输入的字段文本输入完毕时例如通过按软键盘上的按钮确认输入完毕该widget会调用onSubmitted回调
""";
const String _textFieldText1 =
"""### **基本用法**
> 参数的默认的按钮和禁用按钮
- 默认情况下,文本字段具有在文本字段下方绘制分隔符的修饰
- 您可以使用装饰属性来控制装饰,例如通过添加标签或图标。如果将装饰属性设置为空,则将完全删除装饰,包括装饰引入的额外填充,以节省标签的空间
- 如果装饰是非null这是默认的文本字段需要它的祖先之一是一个材质widget。当文本字段被敲击时墨水溅到材料上的油漆被触发。
- 若要将TeXFieldField集成到其他FieldFieldWrices窗体中请考虑使用TeTFrimeField。""";
const String _textFieldText1 = """### **基本用法**
> 参数控制默认的按钮和禁用按钮
- 默认情况下TextField 下方有一个下划线进行修饰。
- 您可以使用decoration属性来控制该widget样式例如通过添加标签或图标。如果将decoration属性设置为空则将完全删除装饰包括装饰引入的额外填充以节省标签的空间
- 如果decoration属性是非null这是默认的文本字段需要它的父类是一个Material widget。当文本字段被点击时会出发被点击的效果
- 若要将TextField和其他FormFild集成到Form中请考虑使用TeTFrimeField。""";
const String _textFieldText2 =
"""### **进阶用法**
> 实现稍微复杂点的效果键盘就变成了数字优先为输入框做一些其他的效果如提示文字icon、标签文字等
const String _textFieldText2 = """### **进阶用法**
> 实现稍微复杂点的效果TextField 的输入以数字优先为输入框做一些其他的效果如提示文字icon、标签文字等
- 增加一个keyboardType属性把keyboardType设置为 TextInputType.number 让TextField获得焦点的时候弹出的键盘就变成了数字优先。
- 新增decoration属性设置相关属性可以发现当我们的TextField获得焦点时图标会自动变色提示文字会自动上移。
- onChanged是每次输入框内每次文字变更触发的回调onSubmitted是用户提交而触发的回调。
- onChanged是输入框内每次文字变更触发的回调方法onSubmitted是用户提交而触发的回调方法
- 每当用户改变输入框内的文字,都会在控制台输出现在的字符串.与onSubmitted用法相同。
""";
class Demo extends StatefulWidget {
static const String routeName = 'elements/Form/Input/TextField';
@override
_DemoState createState() => _DemoState();
}
class _DemoState extends State<Demo> {
String buttonShapeType = 'border'; // 边框类型
void setButtonShapeType(){
String _buttonShapeType = (buttonShapeType == 'border') ? 'radius' : 'border';
this.setState((){
void setButtonShapeType() {
String _buttonShapeType =
(buttonShapeType == 'border') ? 'radius' : 'border';
this.setState(() {
buttonShapeType = _buttonShapeType;
});
}
@override
Widget build(BuildContext context) {
return WidgetDemo(
@ -68,4 +67,3 @@ class _DemoState extends State<Demo> {
);
}
}

View File

@ -9,7 +9,6 @@
import 'package:flutter/material.dart';
import '../../../../../common/widget_demo.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'demo.dart';
const content1 = """
# Radio