From ba3d655ccc8837993800a9a2c1b6cb6b919b9d7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=93=E5=8F=91=E5=8F=97=E9=95=BF=E7=94=9F?= Date: Tue, 29 Oct 2019 22:06:08 +0800 Subject: [PATCH] =?UTF-8?q?flutter=E5=88=9D=E8=A7=81=20over?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/flutter/ListView.png | Bin 0 -> 18622 bytes source/_posts/flutter/Flutter初见.md | 108 +++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 images/flutter/ListView.png diff --git a/images/flutter/ListView.png b/images/flutter/ListView.png new file mode 100644 index 0000000000000000000000000000000000000000..45966da6111bd7ab5cea52f1e17be33684c24128 GIT binary patch literal 18622 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 Z{wk;0)(g%9PaI-k@O1TaS?83{1OVdy(@6jT literal 0 HcmV?d00001 diff --git a/source/_posts/flutter/Flutter初见.md b/source/_posts/flutter/Flutter初见.md index fbf66df..c9c2bc5 100644 --- a/source/_posts/flutter/Flutter初见.md +++ b/source/_posts/flutter/Flutter初见.md @@ -147,3 +147,111 @@ Container( ) ``` 属性也都很容易理解,可以设置容器的宽高,内外边距等等 + +**decoration**属性可以用来修饰容器 +比如边框、背景色等 +```dart +Container( + width: 500, + height: 300, + padding: EdgeInsets.all(20), // 内边距 + decoration: BoxDecoration( // 容器修饰 + // 边框 + border: Border.fromBorderSide(BorderSide(color:Colors.amber, width:5)), + // 背景过渡色 + gradient: LinearGradient( + colors: [Colors.blueAccent, Colors.pinkAccent] + ) + ), + child: Text('Hello'), +), +``` + +#### 图片组件 +`Image`是图片组件 +显示图片的方式有4种 ++ **Image.asset** - 加载资源图片,资源图片需要打包在APP当中 ++ **Image.network** - 网络资源图片 ++ **Image.file** - 设备本地的图片,比如相机拍照后的图片预览 ++ **Image.memory** - 加载内存中的图片,Uint8List + +```dart +Image.network( + 'https://www.colorfulsweet.site/api/common/randomBg?id=5d79b8606867833591833ae4', // 图片地址 + scale: 1.5, // 缩放(值越大图片显示越小) + fit: BoxFit.fitHeight, // fit属性指定控制图片拉伸适应容器的方式, 这里是按高度适应 +), +``` + +##### 图片混合模式 +可以给图片混合上一种颜色,类似于添加滤镜 +```dart +Image.network( + 'https://www.colorfulsweet.site/api/common/randomBg?id=5d79b8606867833591833ae4', + color: Colors.lightGreen, // 混合的颜色 + colorBlendMode: BlendMode.lighten, // 混合的模式 + repeat: ImageRepeat.repeat, // 平铺充满容器 +), +``` +#### 列表组件 +就是`ListView`组件 +通常用于数据列表的展示 +```dart +ListView(children: [ + ListTile( + leading: Icon(Icons.access_time), + title: Text('这是第一条'), + ), + ListTile( + leading: Icon(Icons.android), + title: Text('这是第二条'), + ) + ], +), +``` +ListView其中的children是一个Widget数组 +其中可以是任意的组件,纵向列表通常使用`ListTile`(列表瓦片)来作为列表成员 +其中的leading和title都可以是任意组件,可以利用各种组件的组合来构造出漂亮的列表 +![ListView](/images/flutter/ListView.png) + + +ListView有属性`scrollDirection`,表示列表元素的排列方向,默认是纵向的 +如果设置为 **Axis.horizontal** 可以实现横向的列表 + +### 自定义组件 +当页面结构很复杂的时候,如果我们把原生组件都堆积在一起 +就会产生非常多的嵌套结构,造成代码难以维护 +所以就很有必要创建自定义的组件,进行封装和重用 +```dart +class MyList extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Container(child: + ListView( + scrollDirection: Axis.horizontal, + children: [ + Container( + width: 150, + color: Colors.pinkAccent, + ), + Container( + width: 150, + color: Colors.blue, + ), + Container( + width: 150, + color: Colors.lightGreen, + ), + Container( + width: 150, + color: Colors.amber, + ), + ], + ), + height: 100, + ); + } +} +``` +封装的组件就是这样一个继承`StatelessWidget`的类 +可以放在任意一个需要使用Widget的地方 \ No newline at end of file