abstract class Enum<T> {
final T value;
const Enum(this.value);
}
class FlightScheduleStatus<int> extends Enum<int> {
const FlightScheduleStatus(int val) : super(val);
static const None = const FlightScheduleStatus(0);
static const OnTime = const FlightScheduleStatus(1);
static const Delayed = const FlightScheduleStatus(2);
}
Widget getFlightStates(LiveStatus liveStatus) {
switch (liveStatus.flightScheduleStatus) {
case FlightScheduleStatus.Delayed:
return Row(
children: <Widget>[
Text('Delayed'),
SizedBox(
width: 3,
),
Chip(
label: Text('${liveStatus.delayedTime}'),
backgroundColor: Colors.red,
),
],
);
break;
case FlightScheduleStatus.OnTime:
return Text('On Time');
break;
case FlightScheduleStatus.None:
return Text('N/A');
break;
}
}
这里我用自定义类创建了自定义枚举。但是当我们使用switch语句时,这里不会遇到任何情况。请在这个问题上帮助我。如果要使用枚举类,我想按原样工作。
即使我使用liveStatus.flightScheduleStatus.value
也无法正常工作。
为什么不使用普通的枚举?
enum FlightScheduleStatus { None, OnTime, Delayed }