flutter 红灯闪烁
时间: 2024-09-18 21:16:03 浏览: 122
在 Flutter 中,红灯闪烁通常是在模拟交通信号灯动画效果时使用的。你可以通过修改状态(State)管理组件的状态,比如使用一个 `bool` 属性来控制灯的颜色(红色)以及闪烁。下面是一个简单的示例:
```dart
import 'package:flutter/material.dart';
class TrafficLight extends StatefulWidget {
@override
_TrafficLightState createState() => _TrafficLightState();
}
class _TrafficLightState extends State<TrafficLight> {
bool isRed = true;
Duration flashInterval = const Duration(milliseconds: 500); // 每次闪动间隔
void toggleRed() {
setState(() {
isRed = !isRed; // 切换颜色
});
}
@override
Widget build(BuildContext context) {
return Container(
child: Center(
child: Switch(
value: isRed,
onChanged: toggleRed, // 当开关切换时改变颜色
thumbColor: isRed ? Colors.red : Colors.grey, // 开关的颜色取决于灯的颜色
),
),
child: AnimatedBuilder(
animation: Animation<double>.linear( // 使用动画构建闪烁效果
duration: Duration(seconds: 1), // 总持续时间
builder: (context, child) {
return child.withOpacity(isRed ? 1.0 : 0.4);
},
),
child: SizedBox(height: 200, width: 200, child: CircleAvatar(color: Colors.red)),
),
);
}
}
// 使用方式
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: TrafficLight(),
);
}
}
```
在这个例子中,当你打开关闭开关时,背景圆圈会从全透明到半透明变化,模仿红灯的闪烁效果。当然,实际应用中可能会有更复杂的动画和状态管理。
阅读全文