flutter-demo/lib/screens/item_screens/widgets/date_picker_field.dart
LingandRX faf439087a refactor(item): 重构添加物品页面
- 将 AddItemScreen 中的各个字段提取为独立的 Widget
- 新增 CategoryDropdown、DatePickerField、DescriptionField 等组件
- 优化 Item 模型,使用 ItemIsUse 枚举替代字符串表示是否使用
- 在数据库中添加 price 字段- 重构表单提交逻辑,使用新的组件进行数据采集
2025-05-06 22:06:19 +08:00

46 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
class DatePickerField extends StatelessWidget {
final DateTime? selectedDate;
final ValueChanged<DateTime?> onDateSelected;
const DatePickerField({
required this.selectedDate,
required this.onDateSelected,
});
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
selectedDate == null
? '请选择日期'
: '已选择日期: ${selectedDate!.year}${selectedDate!.month}${selectedDate!.day}',
),
SizedBox(height: 8),
ElevatedButton.icon(
icon: Icon(Icons.calendar_today, color: Colors.white),
label: Text('选择日期'),
onPressed: () async {
final pickedDate = await showDatePicker(
context: context,
initialEntryMode: DatePickerEntryMode.calendarOnly,
initialDate: DateTime.now(),
firstDate: DateTime(2015, 8),
lastDate: DateTime(2101),
);
if (pickedDate == null) {
return;
}
onDateSelected(pickedDate);
},
style: ElevatedButton.styleFrom(
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
),
),
],
);
}
}