我有一个listTile生成器,它返回这个listTile。listTile的颜色,白色,被它的父项覆盖了。我该如何停止这个操作?
return ListTile(
key: Key(index.toString()),
tileColor: Colors.white,
title: Text(widget.userExercises[index].name),
subtitle: Text("${widget.userExercises[index].reps} Reps"),
trailing: Text("${widget.userExercises[index].sets} Sets"),
onTap: () => widget.editFunction(widget.userExercises[index]),
);
但是,当我运行应用时,tileColor被父Container的颜色覆盖。
return Container(
alignment: Alignment.center,
color: Colors.lightBlue,
child: ExerciseTable(
userExercises: todaysExercises,
editFunction: _showEditDialog,
),
);
结果如下:
谢谢!(抱歉的图像大小,我不知道如何改变它)
3条答案
按热度按时间r55awzrz1#
ListTile
将其tileColor
绘制在Material
小部件祖先上。当彩色Container
位于ListTile
和该祖先之间时,您将看不到tileColor
。引用https://github.com/flutter/flutter/pull/86355/commits/9341a6b1d0d2852ee3c7eb413bbbdc9327f425c8:另请参见以下讨论:https://github.com/flutter/flutter/issues/83108
gdrx4gfi2#
当我看到这个问题时,我很惊讶。用
Material
PackageListTile
将解决这个问题,但我仍然不确定问题是如何发生的。vatpfxk53#
使用Material构件扭曲ListTile,因为tileColor不是由ListTile构件本身绘制的,而是由Material构件绘制的。