在Flutter中,可以使用Listener类来监听Container的点击事件,并且在点击时修改Container的BoxShadow效果。具体的实现步骤如下:
import 'package:flutter/material.dart';
class MyContainer extends StatefulWidget {
@override
_MyContainerState createState() => _MyContainerState();
}
class _MyContainerState extends State<MyContainer> {
bool isPressed = false; // 默认为未点击状态
@override
Widget build(BuildContext context) {
return Listener(
onPointerDown: (event) {
setState(() {
isPressed = true; // 修改为点击状态
});
},
onPointerUp: (event) {
setState(() {
isPressed = false; // 修改为未点击状态
});
},
child: Container(
width: 200,
height: 200,
decoration: BoxDecoration(
color: Colors.blue,
boxShadow: [
if (isPressed)
BoxShadow(
color: Colors.grey,
blurRadius: 10,
spreadRadius: 2,
),
],
),
),
);
}
}
void main() {
runApp(MaterialApp(
home: Scaffold(
body: Center(
child: MyContainer(),
),
),
));
}
这样,当点击Container时,会根据点击状态的变化来显示或隐藏BoxShadow效果。
关于Listener类的更多信息,可以参考腾讯云官方文档中的相关介绍:Listener类-腾讯云官方文档
领取专属 10元无门槛券
手把手带您无忧上云