Flutter 之 ListTite (九十)
2022-05-31 本文已影响0人
maskerII
1. ListTile
const ListTile({
Key? key,
this.leading,
this.title,
this.subtitle,
this.trailing,
this.isThreeLine = false,
this.dense,
this.visualDensity,
this.shape,
this.style,
this.selectedColor,
this.iconColor,
this.textColor,
this.contentPadding,
this.enabled = true,
this.onTap,
this.onLongPress,
this.mouseCursor,
this.selected = false,
this.focusColor,
this.hoverColor,
this.focusNode,
this.autofocus = false,
this.tileColor,
this.selectedTileColor,
this.enableFeedback,
this.horizontalTitleGap,
this.minVerticalPadding,
this.minLeadingWidth,
})
ListTile 属性 | 介绍 |
---|---|
leading | 左侧组件 |
title | 标题 |
subtitle | 副标题 |
trailing | 右侧组件 |
isThreeLine | 是否三行,默认为 false,设置为 true 时,subTitle 不可以为空,没啥作用 |
dense | 是否使用缩小布局 |
visualDensity | 紧凑程度,VisualDensity -4~4 |
shape | 形状,这里边缘颜色无效,再点击时阴影可以看出来效果 |
style | ListTile 样式 list 使用适合列表的标题字体,drawer 使用适合抽屉的标题字体 |
selectedColor | 选中时 组件颜色 |
iconColor | icon 颜色 |
textColor | 文本颜色 |
contentPadding | content 内间距 |
enabled | 是否可用,默认为 true,为false时 不可响应事件 |
onTap | 点击事件回调 |
onLongPress | 长按事件回调 |
mouseCursor | 鼠标光标 |
selected | 选中状态,默认为 false |
autofocus | 自动聚焦,默认为 false |
tileColor | ListTile 颜色 |
selectedTileColor | 选中时 ListTile颜色 |
enableFeedback | 是否给予按压反馈 |
focusColor | 聚焦颜色 |
hoverColor | 悬停颜色 |
focusNode | 焦点控制,Flutter 之 FocusNode (七十三) |
horizontalTitleGap | 标题和左右组件的水平间隔 |
minVerticalPadding | 垂直方向 最小内边距 |
minLeadingWidth | 左侧组件 最小宽度 |
2. ListTile 示例
class MSListTileDemo extends StatelessWidget {
const MSListTileDemo({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("ListTileDemo")),
body: SingleChildScrollView(
child: Column(
children: [
ListTile(
leading: Icon(Icons.people), // 左侧组件
title: Text("标题"), // 标题组件
subtitle: Text("副标题"), // 副标题
trailing: Icon(Icons.search), // 右侧组件
isThreeLine: false, // 是否三行 默认false,为ture时 ,subtitle不可以为空
dense: false, // 是否使用缩小布局
visualDensity:
VisualDensity(horizontal: -1.0, vertical: -1.0), // 紧凑程度 -4~4
shape: RoundedRectangleBorder(
side: BorderSide(color: Colors.red),
borderRadius: BorderRadius.circular(8)), // 形状
style: ListTileStyle
.list, // ListTile 样式 list 使用适合列表的标题字体,drawer 使用适合抽屉的标题字体
selectedColor: Colors.cyan, // 选中时 组件颜色
iconColor: Colors.pink[200], // icon 颜色
textColor: Colors.black87, // 文本颜色
contentPadding: EdgeInsets.all(8), // 内容内边距
enabled: true, // 是否可用,默认为 true
onTap: () {
print("onTap 1");
}, // 单击事件 回调
onLongPress: () {
print("onLongPress 1");
}, // 长按事件回调
selected: false, // 是否选中
autofocus: false, // 是否自动聚焦
tileColor: Colors.amber[200], // ListTile颜色
selectedTileColor: Colors.yellow, // 选中时 ListTile颜色
enableFeedback: true, // 是否给予按压反馈
horizontalTitleGap: 16.0, // 标题和左右组件的水平间隔
minVerticalPadding: 6, // 垂直方向 最小内边距
minLeadingWidth: 20, // 左侧组件 最小宽度
),
ListTile(
leading: Icon(Icons.question_mark), // 左侧组件
title: Text("Flutter"), // 标题组件
subtitle: Text(
"Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。 [5] Flutter 开源、免费,拥有宽松的开源协议,适合商业项目。Flutter已推出稳定的2.0版本"), // 副标题
trailing: Icon(Icons.search), // 右侧组件
isThreeLine: false, // 是否三行 默认false,为ture时 ,subtitle不可以为空
dense: false, // 是否使用缩小布局
visualDensity:
VisualDensity(horizontal: -1.0, vertical: -1.0), // 紧凑程度 -4~4
shape: RoundedRectangleBorder(
side: BorderSide(color: Colors.red),
borderRadius: BorderRadius.circular(8)), // 形状
style: ListTileStyle
.list, // ListTile 样式 list 使用适合列表的标题字体,drawer 使用适合抽屉的标题字体
selectedColor: Colors.cyan, // 选中时 组件颜色
iconColor: Colors.pink[200], // icon 颜色
textColor: Colors.black87, // 文本颜色
contentPadding: EdgeInsets.all(8), // 内容内边距
enabled: true, // 是否可用,默认为 true
onTap: () {
print("onTap 2");
}, // 单击事件 回调
onLongPress: () {
print("onLongPress 2");
}, // 长按事件回调
selected: true, // 是否选中
autofocus: false, // 是否自动聚焦
tileColor: Colors.amber[200], // Tile颜色
selectedTileColor: Colors.yellow, // 选中时 Tile颜色
enableFeedback: true, // 是否给予按压反馈
horizontalTitleGap: 16.0, // 标题和左右组件的水平间隔
minVerticalPadding: 6, // 垂直方向 最小内边距
minLeadingWidth: 20, // 左侧组件 最小宽度
),
],
),
),
);
}
}
image.png