当前位置:网站首页>A brief introduction to the showDatePicker method of the basic components of Flutter
A brief introduction to the showDatePicker method of the basic components of Flutter
2022-07-31 03:19:00 【A soybean】
浅识Flutter 基本组件之showDatePicker 方法
showDatePicker ()method is used to pop up a date picker dialog,The dialog has a system default style,也可以通过builderProperties to set custom styles,Its common properties and function descriptions are as follows.
| 属性名 | 类型 | 功能说明 |
|---|---|---|
| context | BuildContext | 设置BuildContext |
| initialDate | DateTime | Sets the default date when the date picker is opened |
| firstDate | DateTime | Sets the start date that can be selected by the date picker |
| lastDate | DateTime | Sets the date picker selectable end date |
| local | Locale | 设置国际化,默认英文 |
| selectableDayPredicate | bool | Sets an optional date for the date picker |
| builder | Widget | Set the date picker theme.Title bar and other styles |
例如,页面上有一个Text组件和一个RaiseButton组件,当点击RaiseButton组件后,弹出日期选择器,After selecting a date on the date picker,将日期显示在Text组件上.
showdata(context) {
showDatePicker(
context: context,
initialDate: DateTime.now(),
lastDate: DateTime.now(),
firstDate: DateTime(1900, 01, 01));
}
FloatingActionButton(
onPressed: () {
showdata(context);
},
backgroundColor: Colors.white,
child: Icon(Icons.watch, color: Colors.grey),
)


The selected date will be displayed
String data = DateTime.now().toString().substring(0,10);
Future<DateTime?> showData(context) async{
// async异步调用的方法 需要等showDatePicker执行完 加上await
DateTime? d =await showDatePicker(
context: context,
initialDate: DateTime.now(),
lastDate: DateTime.now(),
firstDate: DateTime(1900, 01, 01));
/*The selected date will be displayed*/
setState(() {
data= d.toString().substring(0,10);
});
}


完整代码
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class zhucepage extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return MyState();
}
}
class MyState extends State {
List flag = [false, false, false];
List select = ['皇后', '华妃', '甄嬛'];
bool isChecked = false;
//Define a method that pops up a datepickershowdata
String data = DateTime.now().toString().substring(0,10);
Future<DateTime?> showData(context) async{
// async异步调用的方法 需要等showDatePicker执行完 加上await
DateTime? d =await showDatePicker(
context: context,
initialDate: DateTime.now(),
lastDate: DateTime.now(),
firstDate: DateTime(1900, 01, 01));
/*The selected date will be displayed*/
setState(() {
data= d.toString().substring(0,10);
});
}
// showData(context) {
// var d=showDatePicker(
// context: context,
// initialDate: DateTime.now(),
// lastDate: DateTime.now(),
// firstDate: DateTime(1900, 01, 01));
// /*The selected date will be displayed*/
// setState(() {
// data= d.toString().substring(0,10);
// });
//
// }
@override
Widget build(BuildContext context) {
Row row = Row(
children: <Widget>[
Text('选择你的阵营: '),
Text(select[0]),
Checkbox(
value: flag[0],
onChanged: (value) {
//setState更新值
setState(() {
flag[0] = value!;
});
},
),
Text(select[1]),
Checkbox(
value: flag[1],
onChanged: (value) {
//setState更新值
setState(() {
flag[1] = value!;
});
},
),
Text(select[2]),
Checkbox(
value: flag[2],
onChanged: (value) {
//setState更新值
setState(() {
flag[2] = value!;
});
},
),
],
);
/*创建多个CheckboxListTile*/
Column column = Column(
children: <Widget>[
CheckboxListTile(
value: this.isChecked,
/*设置主标题组件*/
title: Text(
'全选',
style: TextStyle(color: Colors.red),
),
/*设置副标题组件*/
subtitle: Text('全选表示自成一派'),
/*设置显示的小组件,与□所在位置相反*/
secondary: Icon(Icons.flag),
/*调整复选框和图标的位置*/
controlAffinity: ListTileControlAffinity.leading,
onChanged: (bool? value) {
setState(() {
isChecked = value!;
for (int i = 0; i < flag.length; i++) {
flag[i] = isChecked;
}
});
},
),
CheckboxListTile(
title: Text(select[0]),
subtitle: Text('堕胎小分队'),
secondary: Icon(Icons.info),
/*调整复选框和图标的位置*/
controlAffinity: ListTileControlAffinity.leading,
value: flag[0],
onChanged: (value) {
setState(() {
flag[0] = value;
});
}),
CheckboxListTile(
title: Text(select[1]),
subtitle: Text('世兰好苦队'),
secondary: Icon(Icons.info),
/*调整复选框和图标的位置*/
controlAffinity: ListTileControlAffinity.leading,
value: flag[1],
onChanged: (value) {
setState(() {
flag[1] = value;
});
}),
CheckboxListTile(
title: Text(select[2]),
subtitle: Text('莞莞类卿队'),
secondary: Icon(Icons.info),
/*调整复选框和图标的位置*/
controlAffinity: ListTileControlAffinity.leading,
value: flag[2],
onChanged: (value) {
setState(() {
flag[2] = value;
});
}),
// Row(children: <Widget>[
// Text("Choose the day you enter the palace: "),
// Text(data),
// ]),
/*点击一个按钮,The date selection dialog box pops up*/
Row(children: <Widget>[
Text("Choose the day you enter the palace: "),
Text(data+' '),
FloatingActionButton(
onPressed: () {
showData(context);
},
backgroundColor: Colors.white,
child: Icon(Icons.watch, color: Colors.grey ),
),
]),
],
);
return Scaffold(
appBar: AppBar(
title: Text('用户注册'),
centerTitle: true,
),
body: column,
floatingActionButton: FloatingActionButton(
onPressed: () {
String info = "你选择的阵营是:";
for (int i = 0; i < flag.length; i++) {
if (flag[i]) {
/*如果选项被选中*/
info = info + select[i] + ' ';
}
}
print(info);
},
tooltip: 'Increment',
child: Icon(Icons.save),
),
floatingActionButtonLocation:
FloatingActionButtonLocation.centerFloat, //浮标的位置
);
}
}
边栏推荐
- Map.Entry理解和应用
- Mysql 45讲学习笔记(二十四)MYSQL主从一致
- Discussion on Service Commitment of Class Objects under Multithreading
- [C language foundation] Solve C language error: expected ';', ',' or ')' before '&' token
- Local area network computer hardware information collection tool
- 注解用法含义
- 【动态规划】连续子数组的最大和
- QML的使用
- SIP Protocol Standard and Implementation Mechanism
- 5. How does the SAP ABAP OData service support the $filter operation
猜你喜欢

学习DAVID数据库(1)

【编译原理】词法分析程序设计原理与实现

MP使用时的几个常见报错

The use of font compression artifact font-spider

浅识Flutter 基本组件之showDatePicker方法
![[C language] Preprocessing operation](/img/69/0aef065ae4061edaf0d96b89846bf2.png)
[C language] Preprocessing operation

10 Permission introduction

华为分布式存储FusionStorage知识点总结【面试篇】

Problems that need to be solved in distributed system architecture

What skills do I need to learn to move from manual testing to automated testing?
随机推荐
False positives and false negatives in testing are equally worthy of repeated corrections
【CocosCreator 3.5】CocosCreator 获取网络状态
分布式锁以及实现方式三种
The Map Entry understanding and application
[Godot][GDScript] 二维洞穴地图随机生成
some of my own thoughts
TCP详解(一)
华为分布式存储FusionStorage知识点总结【面试篇】
els 方块向右移动边界判断、向下加速
【Cocos Creator 3.5】缓动系统停止所有动画
IDEA comment report red solution
addressable in Golang
【C语言】表达式求值的一般方法
[Android] Room - Alternative to SQLite
C primer plus study notes - 8, structure
[C language foundation] Solve C language error: expected ';', ',' or ')' before '&' token
品牌广告投放平台的中台化应用与实践
Mysql 45讲学习笔记(二十三)MYSQL怎么保证数据不丢
日志级别 和 打印log注意
Ambiguous method call.both