flutter - 当用户在 Flutter 中选择日期时如何获取日期列表
问题描述
我想在用户选择日期时显示日期列表。
Container(
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 0),
decoration: BoxDecoration(
border: Border.all(
width: 1.5,
color: Color(0xFF5c77e0),
style: BorderStyle.solid),
borderRadius: BorderRadius.circular(3)),
// dropdown below..
child: DropdownButton<String>(
isExpanded: true,
value: dropdownValue,
icon: Icon(Icons.keyboard_arrow_down),
iconSize: 30,
underline: SizedBox(),
onChanged: (String newValue) {
setState(() {
dropdownValue = newValue;
});
},
items: <String>[
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'10',
].map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList()),
),
假设用户选择了 5 天。我想显示从当前日期开始的前 5 天的日期,例如今天的日期是“21-03-2020”。如果用户选择了 5 天,则列表应如下所示:
17-03-2020
18-03-2020
19-03-2020
20-03-2020
21-03-2020
我怎样才能做到这一点?
解决方案
假设您的输入是一个数字字符串值。
List<String> getDates(String dateCount){
List<String> dates=[];
var yourDateCountValue=int.parse(dateCount);
var dateToday=DateTime.now();
while(yourDateCountValue!=0){
//Print Full date
print(dateToday.subtract(Duration(days: yourDateCountValue-1)));
//Print Date Exactly of your format
print(dateToday.subtract(Duration(days: yourDateCountValue-1)).toIso8601String().substring(0,10));
//Add dates to the list being started from 5 days back.
dates.add(dateToday.subtract(Duration(days: yourDateCountValue-1)).toIso8601String().substring(0,10));
yourDateCountValue--;
}
return dates;
}
将您的方法称为
getDates("5");
推荐阅读
- java - WindowAdapter 和 WindowDestroyer 的 Java 错误
- javascript - 在 vue.js 中的数组中的项目渲染转换之间进行延迟
- java - JavaFX;Eclipse 在 main 方法中指出错误
- javascript - 使用常用方法替换“用”在 JavaScript Azure 函数中不起作用
- c - 使用 fread() 在 C 中读取 PPM 仅正确返回前 5 个值
- stata - 为什么自定义 stats() 仅显示 Stata esttab 表中的第二个回归?
- angular - 如何使用 ng serve 选项在服务器端启用 CORS
- javascript - 我在尝试实现 css、html 时遇到问题 无法实现图像 1?
- javascript - 集成 php 和 Javascript 的最佳方式
- c# - 未调用 UserJoined 事件处理程序?