我需要在 flutter 中的项目 listTile 元素中添加阴影,但我无法使用 BoxShadow 做到这一点,因为它只能在 Container 中
这是我的列表:
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,
),
),
Run Code Online (Sandbox Code Playgroud) 我有一个返回此 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]),
);
Run Code Online (Sandbox Code Playgroud)
但是,当我运行我的应用程序时,tileColor 会被父容器的颜色覆盖。
return Container(
alignment: Alignment.center,
color: Colors.lightBlue,
child: ExerciseTable(
userExercises: todaysExercises,
editFunction: _showEditDialog,
),
);
Run Code Online (Sandbox Code Playgroud)
结果如下:
谢谢你!(抱歉,图像尺寸我不知道如何更改)
我正在尝试创建一列列表图块,其中顶角和底角是圆角的。有些图块在悬停时会改变颜色,而另一些则不会。因此,我尝试了两件事:
遗憾的是,在这两种情况下,列表图块的背景颜色都会从圆形容器中溢出,如下图所示:
这是第二次尝试的示例代码:
import 'package:flutter/material.dart';
const Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.dark().copyWith(
scaffoldBackgroundColor: darkBlue,
),
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: MyWidget(),
),
),
);
}
}
class MyWidget extends StatelessWidget {
final children = List<Widget>.generate(
5,
(i) => ListTile(
tileColor: Colors.green, hoverColor: Colors.red, title: Text('$i')));
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: …Run Code Online (Sandbox Code Playgroud)