Skip to content

Commit 75c4183

Browse files
添加Flutter代码模板
1 parent f0f4c1c commit 75c4183

File tree

7 files changed

+128
-10
lines changed

7 files changed

+128
-10
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626

2727
* #### [我模仿Flutter中文官网写的一个本地的html页面,同时将官网的一些**未翻译的英文**页面**翻译**成了中文。](https://github.com/AweiLoveAndroid/FlutterWebsiteCN_Mine)
2828

29+
* #### :+1: [Flutter代码模板插件,适用于AS以及IDEA]()
30+
2931
## 二、相关示例代码和项目实战
3032

3133
* #### [Flutter相关demo示例代码](https://github.com/AweiLoveAndroid/Flutter-learning/tree/master/projects/flutter-demo)

code_plugins/settings.jar

5.42 KB
Binary file not shown.

projects/flutter-demo/lib/all_samples/list/list_demo.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import 'listview_multi_level.dart';
1212
import 'listview_radio_listtitle.dart';
1313
import 'listview_simple.dart';
1414
import 'listview_sliver.dart';
15+
import 'sliver_vs_grid.dart';
1516

1617
class ListViewDemos extends StatelessWidget {
1718
@override
@@ -39,6 +40,8 @@ class ListViewDemos extends StatelessWidget {
3940
new ListViewMultiItemDemo()),
4041
buildClicks(
4142
buildContents('多级列表Demo'), context, new ListViewMultiLevelDemo()),
43+
buildClicks(buildContents(' SliverGrid 和 GridView 的对比'), context,
44+
new SliverGridVSGridView()),
4245
new Text(''),
4346
];
4447

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
import 'package:flutter/material.dart';
2+
3+
// SliverGrid 和 GridView 的对比
4+
// 1.SliverGrid只能在有slivers属性的列表控件里面使用,GridView可以单独使用。
5+
// 2.SliverGrid根据设置的maxCrossAxisExtent自动判断创建几列,而GridView需要协商crossAxisCount属性
6+
// 3.SliverGrid和GridView大体功能基本一致,可以创建相同的UI效果。
7+
void main() {
8+
runApp(
9+
new MaterialApp(
10+
title: 'SliverGrid和GridView对比',
11+
theme: new ThemeData(
12+
primarySwatch: Colors.blue,
13+
),
14+
home: new SliverGridVSGridView(),
15+
),
16+
);
17+
}
18+
19+
class SliverGridVSGridView extends StatelessWidget {
20+
@override
21+
Widget build(BuildContext context) {
22+
return new Scaffold(
23+
appBar: new AppBar(
24+
leading: new IconButton(
25+
icon: new Icon(Icons.keyboard_arrow_left),
26+
onPressed: () {
27+
// 返回上一个页面
28+
Navigator.of(context).pop();
29+
}),
30+
title: new Text('SliverGrid和GridView对比'),
31+
),
32+
// body: buildSliverGridItem(),
33+
body: buildGridViewItem(),
34+
);
35+
}
36+
37+
// 使用SliverGrid创建列表
38+
Widget buildSliverGridItem() {
39+
return new CustomScrollView(
40+
shrinkWrap: true,
41+
slivers: <Widget>[
42+
new SliverGrid(
43+
// 设置grid的宽高、间距属性
44+
gridDelegate: new SliverGridDelegateWithMaxCrossAxisExtent(
45+
// 可以理解为:每一个item的宽(或高)的最大值
46+
maxCrossAxisExtent: 100.0,
47+
// 行之间的间距
48+
mainAxisSpacing: 10.0,
49+
// 列之间的间距
50+
crossAxisSpacing: 10.0,
51+
// 子孩子的宽高比例,即:宽度/高度的值
52+
childAspectRatio: 1.0,
53+
),
54+
// 设置每一个item的布局
55+
delegate: new SliverChildBuilderDelegate(
56+
(BuildContext context, int index) {
57+
return new Container(
58+
alignment: Alignment.center,
59+
color: Colors.teal[100 * (index % 10)],
60+
child: new Text('grid item $index'),
61+
);
62+
},
63+
childCount: 30,
64+
),
65+
)
66+
],
67+
);
68+
}
69+
70+
// 使用SliverGrid创建列表
71+
Widget buildGridViewItem() {
72+
return new GridView.count(
73+
// 创建4列
74+
crossAxisCount: 4,
75+
// Axis.horizontal表示横向滑动,scrollDirection: Axis.vertical表示纵向滑动
76+
scrollDirection: Axis.vertical,
77+
// 列之间的间距
78+
crossAxisSpacing: 10.0,
79+
// 行之间的间距
80+
mainAxisSpacing: 10.0,
81+
// 默认false 是否根据子孩子的宽高自动包裹item自身
82+
shrinkWrap: false,
83+
// 子孩子的比例
84+
childAspectRatio: 1.0,
85+
86+
// 生成30个item展示在列表中
87+
children: new List.generate(30, (index) {
88+
return new Container(
89+
alignment: Alignment.center,
90+
color: Colors.teal[100 * (index % 10)],
91+
child: new Text('grid item $index'),
92+
);
93+
}),
94+
);
95+
}
96+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
sliver_vs_grid.dart �������ע��һ����һ���� ������ʱ��ͷŵ�һ������ȥ���Ա�

projects/flutter-demo/lib/view_demo/view/ContainerDemo.dart

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,32 @@ class ContainerDemo extends StatelessWidget {
1717
return new Center(
1818
//使子控件在其内部水平和垂直居中
1919
child: new Container(
20+
alignment: Alignment.center,
21+
padding: const EdgeInsets.all(8.0),
22+
margin: const EdgeInsets.all(8.0),
23+
constraints: new BoxConstraints.expand(
24+
height: Theme.of(context).textTheme.display1.fontSize * 1.1 + 200.0,
25+
),
2026
width: 300.0,
2127
height: 200.0,
22-
decoration: new BoxDecoration(
23-
color: const Color(0xfffce5cd),
24-
border: new Border.all(
25-
//设置Border属性给容器添加边框
26-
color: const Color(0xff6d9eeb), //为边框添加颜色
27-
width: 8.0, //边框宽度
28-
),
29-
),
28+
decoration: buildBoxDecoration(),
29+
foregroundDecoration: buildBoxDecoration(),
3030
child: new Text('容器演示'),
31+
transform: new Matrix4.rotationZ(0.1),
32+
),
33+
);
34+
}
35+
36+
// 注意:BoxDecoration返回的是Decoration对象
37+
Decoration buildBoxDecoration() {
38+
return new BoxDecoration(
39+
color: const Color(0xfffce5cd),
40+
//设置Border属性给容器添加边框
41+
border: new Border.all(
42+
//为边框添加颜色
43+
color: const Color(0xff6d9eeb),
44+
//边框宽度
45+
width: 8.0,
3146
),
3247
);
3348
}

readme/Flutter和原生Android控件对比.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
Flutter和原生Android控件对比:
1+
Flutter和原生Android控件对比:
22

33
Flutter控件|Android控件
44
-|-
55
AppBar|ActionBar/ToolBar
66
ListView|ListView/RecyclerView
77
Text|TextView
88
Center|ViewGroup
9-
Container|RelativeLayout
109
FloatingActionButton|FloatingActionButton(design库里面的)
1110
BottomNavigationBar|BottomNavigation(design库里面的)
1211
RaisedButton/Button|Button
@@ -15,6 +14,8 @@ Row|android:orientation="horizontal"
1514
DecorationImage|ImageView
1615
Image|ImageView
1716
Stack|FrameLayout/RelativeLayout
17+
Container|RelativeLayout
18+
CustomMultiChildLayout|RelativeLayout
1819
Algin|alginParentXXX属性
1920
resizeToAvoidBottomPadding|android:windowSoftInputMode=”adjustResize属性
2021
SingleChildScrollView|ScrollView

0 commit comments

Comments
 (0)