我对默认的ListTile
外观不满意,并希望为其设置主题。具体来说,我对字幕文本的颜色不满意-它是浅灰色,并且与背景表面的对比度不足以使其易于辨认。
我已经有创建自定义ThemeData
的代码,但是我看不到任何文档说明如何自定义它以影响ListTiles。
此文件记录在某处吗?
答案 0 :(得分:1)
不幸的是,无法指定全局ListTileTheme。相反,您可以使用ListTileTheme为它下面的所有内容提供主题,因为它是InheritedWidget。为此,只需用ListTileTheme包装您的子窗口小部件即可。此外,它具有构造函数merge
,该构造函数将尝试在当前列表之上查找ListTileTheme,如果找到任何列表,则将您的样式与父样式合并。
例如
ListTileTheme(
//properties you want to add
child: /// your child widget that has ListTile's anywhere in the tree
),
或
ListTileTheme.merge(
//properties you want to merge with any parent ListTileTheme, if there's any
child: /// your child widget that has ListTile's anywhere in the tree
),
如果有什么事情,您可以按照this issue跟踪全局ListTileTheme的实施进度
答案 1 :(得分:0)
body: Center(
child: ListTile(
leading: const Icon(Icons.flight_land),
title: const Text("Trix's airplane"),
subtitle: const Text(
'The airplane is only in Act II.',
style: TextStyle(color: Colors.amber),
),
enabled: true,
onTap: () {/* react to the tile being tapped */}),
),
如果您要查找列表对象的字幕颜色,请参考上面的代码作为参考。只需设置样式即可。
答案 2 :(得分:0)
我不得不在flutter项目中自定义列表磁贴。
这是我所做的:
我将弹丸包装在Ink
小部件中,并指定了color:
属性为其赋予背景色。
title:
和subtitle:
带有Text()
个可设置样式的小部件,其颜色可以通过使用style: TextStyle(color: Colors.red)
来更改。
leading:
和trailing:
大多包含也具有color:
属性的图标。