一、Flutter AspectRatio 组件

AspectRatio 的作用是根据设置调整子元素 child 的宽高比。
AspectRatio 首先会在布局限制条件允许的范围内尽可能的扩展,widget 的高度是由宽度和比率决定的,类似于 BoxFit 中的 contain,按照固定比率去尽量占满区域。
如果在满足所有限制条件过后无法找到一个可行的尺寸,AspectRatio 最终将会去优先适应布局限制条件,而忽略所设置的比率。
 
 
属性
说明
aspectRatio
宽高比,最终可能不会根据这个值去布局,
具体则要看综合因素,外层是否允许按照这
种比率进行布局,这只是一个参考值
child
子组件
class LayoutDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(
child: Container(
width: 200,
child: AspectRatio(
aspectRatio: 2.0 / 1.0,
child: Container(
color: Colors.red,
),
),
),
);
}
}

二、Flutter Card 组件

Card 是卡片组件块,内容可以由大多数类型的 Widget 构成,Card 具有圆角和阴影,这让它看起来有立体感。
属性 说明
margin
外边距
child
 
子组件
Shape
Card 的阴影效果,默认的阴影效果为圆角的
长方形边。

import 'package:flutter/material.dart';

class LayoutDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListView(children: <Widget>[
Card(
margin: EdgeInsets.all(10),
child: Column(
children: <Widget>[
ListTile(
title: Text("张三", style: TextStyle(fontSize: 28)),
subtitle: Text("高级软件工程师")),
Divider(),
ListTile(title: Text("电话:1213214142")),
ListTile(title: Text("地址:北京市海淀区"))
],
),
),
Card(
margin: EdgeInsets.all(10),
child: Column(
children: <Widget>[
ListTile(
title: Text("李四", style: TextStyle(fontSize: 28)),
subtitle: Text("高级软件工程师"),
),
Divider(),
ListTile(
title: Text("电话:1213214142"),
),
ListTile(title: Text("地址:北京市海淀区"))
],
),
),
]);
}
}

三、Flutter Card 组件实现一个图文列表布局

import 'package:flutter/material.dart';

class LayoutDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListView(
children: listData.map((value) {
return Card(
margin: EdgeInsets.all(10),
child: Column(
children: <Widget>[
AspectRatio(
aspectRatio: 16 / 9,
child: Image.network(value["imageUrl"], fit: BoxFit.cover)),
ListTile(
title: Text(value["title"]),
subtitle: Text(value["description"], overflow: TextOverflow.ellipsis),
leading: CircleAvatar(
backgroundImage: NetworkImage(value["imageUrl"])
),
)
],
),
);
}).toList(),
);
}
}

最新文章

  1. poj 2251 Dungeon Master
  2. 【转】Key/Value之王Memcached初探:一、掀起Memcached的盖头来
  3. nyoj202_红黑树_中序遍历
  4. 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究 转载
  5. Linux/Unix中的#!和!#
  6. Working with Data &#187; Getting started with ASP.NET Core and Entity Framework Core using Visual Studio &#187; 增、查、改、删操作
  7. 正则表达式 之 C#后台应用
  8. oracle 12g sqlplus安装
  9. BZOJ 1269: [AHOI2006]文本编辑器editor( splay )
  10. HTML&amp;JS笔记(1)
  11. Akka(27): Stream:Use case-Connecting Slick-dbStream &amp; Scalaz-stream-fs2
  12. head first python菜鸟学习笔记(第四章)
  13. AHB/APB简介
  14. 使用原生 JS 复制文本兼容移动端 iOS &amp; android
  15. 全局css控制&lt;td&gt;标签属性
  16. Spring Boot 线程池
  17. Dynamic CRM插件调试与单元测试
  18. 解决git: &#39;subtree&#39; is not a git command. See &#39;git --help&#39;.
  19. html-prepend
  20. 第一篇:打造专属开发工具Eclipse篇

热门文章

  1. Docker安装和基础命令
  2. gateway添加跨域配置
  3. linux 替换csv的换行符(Linux 替换^M字符 方法)
  4. ESModule导入
  5. 使用vue+iview创建自己的对话框组件
  6. Qt6.2 在Ubuntu20下提示 C++ 和 CMake 错误
  7. 编译报错Could NoT find Threads (missing: Threads FOUND)
  8. MYSQL启动:&#39;服务没有相应控制功能&#39;问题解决
  9. win10企业版在线转换成win10专业版
  10. TypeScript 学习之路