我想知道是否有可能只包含月份和年份的选择器,而在当前的DatePicker中我找不到此选项。
谢谢。
答案 0 :(得分:3)
答案 1 :(得分:0)
不可能从官方的DatePicker小部件中删除“ day”。您应该创建DatePicker窗口小部件的副本,并删除“ day”部分。然后在您的项目中使用您自己的类,而不是“原始”类。
答案 2 :(得分:0)
对于需要其他方法的其他人,将dateFormat设置为'yyyy-mm'会隐藏日期字段。
DatePicker.showDatePicker(
...
dateFormat:'yyyy-mm',
...
);
答案 3 :(得分:0)
您可以使用“ YearPicker” 小部件仅显示年度日历。 一个典型的例子是:
TextFormField(
validator: value.isEmpty ? 'this field is required' : null,
readOnly: true,
style: TextStyle(fontSize: 13.0),
decoration: InputDecoration(
hintStyle: TextStyle(fontSize: 13.0),
hintText: 'Pick Year',
contentPadding: EdgeInsets.symmetric(horizontal: 10.0),
border: OutlineInputBorder(),
suffixIcon: Icon(Icons.calendar_today)),
onTap: () => handleReadOnlyInputClick(context),
)
void handleReadOnlyInputClick(context) {
showBottomSheet(
context: context,
builder: (BuildContext context) => Container(
width: MediaQuery.of(context).size.width,
child: YearPicker(
selectedDate: DateTime(1997),
firstDate: DateTime(1995),
lastDate: DateTime.now(),
onChanged: (val) {
print(val);
Navigator.pop(context);
},
),
));
}
注意:您不必使用bottomSheet,您可以将其嵌套在有效的窗口小部件中。