[英]How can i add a shadow in ListTile flutter like 'elevation'
我需要在 flutter 的项目 listTile 元素中添加阴影,但我无法使用 BoxShadow 执行此操作,因为它只能在 Container 中实现
这是我的 listTile:
child: ListTile(
leading: const Icon(Icons.flight_land),
tileColor: Colors.black.withOpacity(0.5),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15),
side: BorderSide(
color: Colors.black,
),
),
title: Text(
snapshot
.data!.docChanges[index].doc['nameCourse'],
style: TextStyle(
fontSize: 20,
//COLOR DEL TEXTO TITULO
color: Colors.blueAccent,
),
),
contentPadding: EdgeInsets.symmetric(
vertical: 8,
horizontal: 16,
),
),
您不能向 ListTile 本身添加阴影。 所以一个解决方案可以是用这样的容器包装它
Container(
decoration: BoxDecoration(
color: Colors.white, // Your desired background color
borderRadius: BorderRadius.circular(15),
boxShadow: [
BoxShadow(color: Colors.black.withOpacity(0.3), blurRadius: 15),
]
),
child: ListTile(
leading: const Icon(Icons.flight_land),
tileColor: Colors.black.withOpacity(0.5),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15),
side: const BorderSide(
color: Colors.black,
),
),
title: const Text(
'Text',
style: TextStyle(
fontSize: 20,
//COLOR DEL TEXTO TITULO
color: Colors.blueAccent,
),
),
contentPadding:
const EdgeInsets.symmetric(vertical: 8, horizontal: 16),
),
),
您可以使用Material
小部件包装您的ListTile
小部件并为其提供阴影。
例如:
Material(
elevation: 20.0,
shadowColor: Colors.blueGrey,
...
),
试试下面的代码希望它对你有帮助。
使用卡:
Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15),
side: BorderSide(
color: Colors.black,
),
),
elevation: 16,
shadowColor: Colors.red,
child: ListTile(
leading: const Icon(Icons.flight_land),
title: Text(
'Title',
style: TextStyle(
fontSize: 20,
//COLOR DEL TEXTO TITULO
color: Colors.blueAccent,
),
),
subtitle: Text(
'Sub Title',
),
trailing: const Icon(Icons.add),
),
),
参考Card
在这里
使用物理模型:
PhysicalModel(
color: Colors.white,
elevation: 18,
shadowColor: Colors.green,
borderRadius: BorderRadius.circular(20),
child: ListTile(
leading: const Icon(Icons.flight_land),
title: Text(
'Title',
style: TextStyle(
fontSize: 20,
//COLOR DEL TEXTO TITULO
color: Colors.blueAccent,
),
),
subtitle: Text(
'Sub Title',
),
trailing: const Icon(Icons.add),
),
),
在此处参考PhysicalModel
模型
在此处参考ListTile
使用物理形状
PhysicalShape(
color: Colors.white,
elevation: 18,
shadowColor: Colors.yellow,
clipper: ShapeBorderClipper(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
),
child: ListTile(
leading: const Icon(Icons.flight_land),
title: Text(
'Title',
style: TextStyle(
fontSize: 20,
//COLOR DEL TEXTO TITULO
color: Colors.blueAccent,
),
),
subtitle: Text(
'Sub Title',
),
trailing: const Icon(Icons.add),
),
),
在此处参考PhysicalShape
形状
使用材料
Material(
color: Colors.white,
elevation: 18,
shadowColor: Colors.blue,
child: ListTile(
leading: const Icon(Icons.flight_land),
title: Text(
'Title',
style: TextStyle(
fontSize: 20,
//COLOR DEL TEXTO TITULO
color: Colors.blueAccent,
),
),
subtitle: Text(
'Sub Title',
),
trailing: const Icon(Icons.add),
),
),
在此处参考材料
可以用卡,把这个放进卡里
elevation: 16,
shadowColor: Colors.black,
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 5,
blurRadius: 7,
offset: Offset(0, 3),
),
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.