ShowTimePicker 簡單易懂,但我不知道這個錯誤是從哪里來的。
編碼:
TimeOfDay selectedTime = TimeOfDay.now();
IconButton(icon: Icon(Icons.access_time, color: Colors.blue),
onPressed: () async {
TimeOfDay? _time = await showTimePicker(
context: context,
initialTime: TimeOfDay.now(),
);
if (_time != null) {
selectedTime.hour = _time.hour;
}
},
),
錯誤顯示在小時字下selectedTime.hour:
'hour' can't be used as a setter because it's final. Try finding a different setter, or making 'hour' non-final.
uj5u.com熱心網友回復:
使用.replacing()方法。
回傳一個新的 TimeOfDay,其中替換了小時和/或分鐘。
onPressed: () async {
TimeOfDay selectedTime = TimeOfDay.now();
TimeOfDay? _time = await showTimePicker(
context: context,
initialTime: TimeOfDay.now(),
);
if (_time != null) {
selectedTime = selectedTime.replacing(hour: _time.hour); // use setState if neended
}
print(selectedTime.toString());
},
更多TimeOfDay 替換
uj5u.com熱心網友回復:
是的,如果您轉到類 TimeOfDay 的定義,您會看到小時是最終的,因此您可以重置此屬性。但是您只是重置 selectedTime (小時和分鐘都將重置)。然后在 initialTime 屬性中,如果它不為空,您應該檢查 selectedTime 并設定如下代碼。每次選擇時間,您將保持最后的價值。
onPressed: () async {
TimeOfDay? _time = await showTimePicker(
context: context,
initialTime:
selectedTime != null ? selectedTime : TimeOfDay.now(),
);
if (_time != null) {
selectedTime = _time;
// selectedTime.hour = _time.hour;
print(selectedTime.hour);
}
},
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/343281.html
上一篇:計算除星期日以外的2天的小時數
