flutter写一个时间选择器
时间: 2023-03-21 20:02:04 浏览: 334
以下是一个基本的Flutter时间选择器,使用`showTimePicker()`函数显示一个对话框来让用户选择时间:
```dart
import 'package:flutter/material.dart';
class TimePickerWidget extends StatefulWidget {
@override
_TimePickerWidgetState createState() => _TimePickerWidgetState();
}
class _TimePickerWidgetState extends State<TimePickerWidget> {
TimeOfDay _selectedTime;
Future<void> _selectTime(BuildContext context) async {
final TimeOfDay time = await showTimePicker(
context: context,
initialTime: _selectedTime ?? TimeOfDay.now(),
);
if (time != null) {
setState(() {
_selectedTime = time;
});
}
}
@override
Widget build(BuildContext context) {
return InkWell(
onTap: () => _selectTime(context),
child: InputDecorator(
decoration: InputDecoration(
labelText: 'Select Time',
border: OutlineInputBorder(),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(
_selectedTime != null ? _selectedTime.format(context) : '',
style: TextStyle(fontSize: 16.0),
),
Icon(Icons.arrow_drop_down),
],
),
),
);
}
}
```
在上面的代码中,我们创建了一个名为`TimePickerWidget`的小部件,它继承自`StatefulWidget`,因为它需要保持用户选择的时间。 `_selectedTime`变量用于存储所选的时间。 `_selectTime()`方法显示时间选择器对话框,并在用户完成选择后更新所选的时间。在`build()`方法中,我们使用`InputDecorator`和`InkWell`小部件来显示时间选择器的外观,并使用`Text`和`Icon`小部件显示所选的时间。
阅读全文