ListTile 通常用于在 Flutter 中填充 ListView。在这篇文章中,我将用可视化的例子来说明所有的参数。

title

title 参数可以接受任何小部件,但通常是文本小部件

ListTile(
title: Text('Horse'),
)
title.png

subtitle

副标题是标题下面较小的文本

ListTile(
title: Text('Horse'),
subtitle: Text('A strong animal'),
)
subtitle.png

dense

使文本更小,并将所有内容打包在一起

ListTile(
title: Text('Horse'),
subtitle: Text('A strong animal'),
dense: true,
)
 
dense.png

leading

将图像或图标添加到列表的开头。这通常是一个图标。

ListTile(
leading: CircleAvatar(
backgroundImage: NetworkImage(imageUrl),
),
title: Text('Horse'),
)
leading.png
ListTile(
leading: Icon(Icons.home),
title: Text('House'),
)
leading1.png

trailing

设置拖尾将在列表的末尾放置一个图像。这对于指示主-细节布局特别有用。

ListTile(
title: Text('Horse'),
trailing: Icon(Icons.keyboard_arrow_right),
)
 
trailing.png

contentPadding

设置内容边距,默认是 16,但我们在这里设置为 0

ListTile(
title: Text('Horse'),
trailing: Icon(Icons.keyboard_arrow_right),
contentPadding: EdgeInsets.symmetric(horizontal: 0.0),
)
 
contentPadding.png

selected

如果选中列表的 item 项,那么文本和图标的颜色将成为主题的主颜色。

ListTile(
title: Text('Horse'),
trailing: Icon(Icons.keyboard_arrow_right),
selected: true,
)
 
selected.png

Gesture recognition

ListTile 可以检测用户的点击和长按事件,onTap 为单击,onLongPress 为长按。对于波纹效果是内置的

ListTile(
title: Text('Horse'),
onTap: () {
// do something
},
onLongPress: (){
// do something else
},
)
 
Gesture.gif

enabled

通过将 enable 设置为 false,来禁止点击事件

ListTile(
title: Text('Horse'),
onTap: () {
// this will not get called
},
enabled: false,
)
 
enabled.png

ListTile.divideTiles

静态方法 divideTiles 可以在 titles 之间添加分隔符,这个颜色有点淡,需要看仔细点才能看出来,哈哈

ListView(
children: ListTile.divideTiles(
context: context,
tiles: [
ListTile(
title: Text('Horse'),
),
ListTile(
title: Text('Cow'),
),
ListTile(
title: Text('Camel'),
),
ListTile(
title: Text('Sheep'),
),
ListTile(
title: Text('Goat'),
),
]
).toList(),
)
divideTiles.png

使用实例

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'My App',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(title: Text('ListTile guide')),
body: BodyWidget(),
),
);
}
} String horseUrl = 'https://i.stack.imgur.com/Dw6f7.png';
String cowUrl = 'https://i.stack.imgur.com/XPOr3.png';
String camelUrl = 'https://i.stack.imgur.com/YN0m7.png';
String sheepUrl = 'https://i.stack.imgur.com/wKzo8.png';
String goatUrl = 'https://i.stack.imgur.com/Qt4JP.png'; class BodyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListView(
children: <Widget>[
ListTile(
leading: CircleAvatar(
backgroundImage: NetworkImage(horseUrl),
),
title: Text('Horse'),
subtitle: Text('A strong animal'),
trailing: Icon(Icons.keyboard_arrow_right),
onTap: () {
print('horse');
},
selected: true,
),
ListTile(
leading: CircleAvatar(
backgroundImage: NetworkImage(cowUrl),
),
title: Text('Cow'),
subtitle: Text('Provider of milk'),
trailing: Icon(Icons.keyboard_arrow_right),
onTap: () {
print('cow');
},
),
ListTile(
leading: CircleAvatar(
backgroundImage: NetworkImage(camelUrl),
),
title: Text('Camel'),
subtitle: Text('Comes with humps'),
trailing: Icon(Icons.keyboard_arrow_right),
onTap: () {
print('camel');
},
enabled: false,
),
ListTile(
leading: CircleAvatar(
backgroundImage: NetworkImage(sheepUrl),
),
title: Text('Sheep'),
subtitle: Text('Provides wool'),
trailing: Icon(Icons.keyboard_arrow_right),
onTap: () {
print('sheep');
},
),
ListTile(
leading: CircleAvatar(
backgroundImage: NetworkImage(goatUrl),
),
title: Text('Goat'),
subtitle: Text('Some have horns'),
trailing: Icon(Icons.keyboard_arrow_right),
onTap: () {
print('goat');
},
),
],
);
}
}

來源:https://www.jianshu.com/p/6488b2fa4f53

最新文章

  1. 安卓初級教程(5):TabHost的思考
  2. Linux标准输入输出
  3. Ajax表单序列化后的数据格式转成Json发送给后台
  4. Linux下创建新用户
  5. iframe在ios下无故扩大的问题探究
  6. ibatis selectKey用法问题
  7. php防止sql注入
  8. Missing access checks in put_user/get_user kernel API (CVE-2013-6282)
  9. .NET六大剑客:栈、堆、值类型、引用类型、装箱和拆箱
  10. Oracle EBS-SQL (WIP-16):检查期间手工下达的车间任务数.sql
  11. java基础练习 10
  12. WPF TextBox/TextBlock 文本超出显示时,文本靠右显示
  13. 使用Python编的猜数字小游戏
  14. ubuntu kylin18 安装NVIDIA驱动
  15. Recyclerview 实现上拉加载更多
  16. [Erlang02] 那些经历过的Erlang小坑1-10
  17. 如何判断某版本的.NET Framework是否安装
  18. 大数据框架-Zookeeper
  19. UML结构体系简介
  20. 公有云Docker镜像P2P加速之路:安全篇

热门文章

  1. 30 年前的圣诞节,Python 序章被谱写
  2. 转 opencv红绿灯检测
  3. multipages-generator今日发布?!妈妈再也不用担心移动端h5网站搭建了!
  4. jQuery插件simplePagination的使用-踩坑记_03
  5. InfluxDB安装使用
  6. 三十一、python中urllib和requests包详解
  7. ArrayBlockingQueue 源码分析
  8. linux文本图形界面转换
  9. TP框架对数据库的基本操作
  10. K近邻实战手写数字识别