0 purchases
dh picker
dh_picker 选择器控件,支持数字选择,字符串选择,日期选择,自定义选择。
在你的项目pubspec.yaml添加如下依赖
dependencies:
dh_picker: ^1.0.0
copied to clipboard
num_picker 数字选择器
max 最大值
min 最小值
interval 间隔值
indexFormat 格式化函数,可以格式化每项
NumberPicker(
max: 21,
min: 1,
interval: 2,
indexFormat: (value) => "$value+",
itemExtent: 40,
onSelectedItemChanged: (value) {
print('selected value: $value');
},
labelAlignment: Alignment.center,
label: Text("℃"),
labelPadding: EdgeInsets.only(left: 50, bottom: 16),
),
)
copied to clipboard
string_picker 字符串选择器
StringPicker(
itemExtent: 40,
data: ['Apple', 'Bob', 'Cat'],
onSelectedItemChanged: (String value) {
print('selected value: $value');
},
)
copied to clipboard
date_picker 日期时间选择器,参考flutter_date_picker
pickerModel选择器数据模型,已支持下列模型。
DatePickerModel 日期(xxxx年xx月xx日)
DateTimePickerModel 日期时间(xxxx年xx月xx日 xx时:xx分:xx秒)
QuarterPickerModel 日期季度 (xxxx年第一季度)
SemiannualPickerModel 日期半年度 (xxxx年上半年)
TimePickerModel 时间(xx时:xx分:xx秒)无范围限制。
TimeRangePickerModel 时间范围 (xx时:xx分:xx秒)相比TimePickerModel可设置最大最小时间范围。
pickerModel 参数介绍:
currentTime 当前日期时间,未设置使用系统当前时间。
maxTime 最大日期时间
minTime 最小日期时间
formats 日期格式化。数组类型,长度由当前模型特性(内部picker个数)决定。 根据picker类型格式化,例如年通常格式化为: yyyy,季度格式化:QQQQ(第一季度),QQQ(一季度)。年月日补充说明,它们的格式化补0,多语言其它地区不需要单位,根据label来决定是否显示单位(年月日)。
label 标识单位是否显示
weights 内部picker控件权重
dividers 内部picker间隔符
pickerOverlay 选择器上覆盖层,通常用于添加分割线。
每个选择器都可以设置selectionOverlay。设置pickerOverlay 自定义Overlay,pickerOverlay 会在当前Picker上添加Overlay。也可以设置selectionOverlayBuilder为每个内部picker添加Overlay,如果未设置会添加一个默认的Overlay。
注意使用pickerOverlay时,需要设置selectionOverlayBuilder: (int index) => null。
showPicker(context, builder: (BuildContext context) {
return DateTimePickerWidget(
onConfirm: (DateTime dateTime) {
selectTime = dateTime;
print('date time: $dateTime');
},
title: "选择日期",
titleActionTheme: TitleActionTheme(
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(10.0),
topRight: Radius.circular(10.0)))),
),
onCancel: () {
print('取消了');
},
pickerTheme: PickerTheme(
height: 180.0,
),
pickerModel: DateTimePickerModel(
maxTime: DateTime(2022, 12, 1, 5, 6),
minTime: DateTime(2020, 11, 2, 3, 4),
currentTime: selectTime,
),
pickerOverlay: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
SizedBox(
width: 18,
),
Expanded(
child: DefaultSelectionOverlay(
borderColor: Colors.red,
)),
SizedBox(
width: 27,
),
Expanded(
child: DefaultSelectionOverlay(
borderColor: Colors.red,
)),
SizedBox(
width: 27,
),
Expanded(
child: DefaultSelectionOverlay(
borderColor: Colors.red,
)),
SizedBox(
width: 18,
),
],
),
selectionOverlayBuilder: (int index) => null,
);
});
copied to clipboard
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.