Datepicker 颤振问题
Issue in Datepicker flutter
当我单击文本字段和 select 出生日期时,它显示
我的标签文字。
我不想在 select 编辑日期后显示我的标签文本。此外,键盘出现在我之前和之后
select日期。
如何禁用出现的键盘并删除
在我的文本字段中显示时间?我只需要一个日期来显示 after the selection.
DateTime _date = DateTime.now();
Future<Null> _selectDate(BuildContext) async {
DateTime? _datePicker = await showDatePicker(
context: context,
initialDate: _date,
firstDate: DateTime(1947),
lastDate: DateTime(2023),
initialDatePickerMode: DatePickerMode.year
);
if (_datePicker != null && _datePicker != _date) {
setState(() {
_date = _datePicker;
print(
_date.toString(),
);
});
}
}
TextFormField(
onTap: (){
setState(() {
_selectDate(context);
});
},
decoration: InputDecoration(hintText: (_date.toString()),
hintStyle: TextStyle(color:buttontext, fontSize: 14),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: buttonblue),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: buttonblue),
),
labelText: "Select Date of Birth",
labelStyle: TextStyle(fontSize: 15, color: buttontext),
),
style: TextStyle(color: buttontext),
),
使用DateFormat()
var myFormat = DateFormat('yyyy-MM-dd');//define format here
Future<Null> _selectDate(BuildContext) async {
DateTime? _datePicker = await showDatePicker(
context: context,
initialDate: _date,
firstDate: DateTime(1947),
lastDate: DateTime(2023),
initialDatePickerMode: DatePickerMode.year
);
if (_datePicker != null && _datePicker != _date) {
var fomatDate=myFormat.format(_datePicker);
setState(() {
_date = fomatDate;
print(
_date.toString(),
);
});
}
}
试试下面的代码,希望对你有帮助。为日期格式添加 intl package
声明变量:
DateTime? selectedDate;
DateTime _date = DateTime.now();
var dob;
您的日期选择器:
datePicker() async {
selectedDate = await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2000),
lastDate: DateTime(2100),
helpText: 'Campaign Date Picker'.toUpperCase(),
);
if (selectedDate != null && selectedDate != _date) {
setState(() {
_date = selectedDate!;
dob = DateFormat('dd-MM-yyyy')
.format(_date); //change date format on your need
print(
dob.toString(),
);
});
}
}
您的小部件:
TextFormField(
onTap: () {
setState(() {
datePicker();
});
},
decoration: InputDecoration(
hintText: (dob.toString()),
border: OutlineInputBorder(),
labelText: "Select Date of Birth",
floatingLabelBehavior: FloatingLabelBehavior.never,
),
),
你的成绩->
当我单击文本字段和 select 出生日期时,它显示 我的标签文字。
我不想在 select 编辑日期后显示我的标签文本。此外,键盘出现在我之前和之后 select日期。
如何禁用出现的键盘并删除 在我的文本字段中显示时间?我只需要一个日期来显示 after the selection.
DateTime _date = DateTime.now();
Future<Null> _selectDate(BuildContext) async {
DateTime? _datePicker = await showDatePicker(
context: context,
initialDate: _date,
firstDate: DateTime(1947),
lastDate: DateTime(2023),
initialDatePickerMode: DatePickerMode.year
);
if (_datePicker != null && _datePicker != _date) {
setState(() {
_date = _datePicker;
print(
_date.toString(),
);
});
}
}
TextFormField(
onTap: (){
setState(() {
_selectDate(context);
});
},
decoration: InputDecoration(hintText: (_date.toString()),
hintStyle: TextStyle(color:buttontext, fontSize: 14),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: buttonblue),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: buttonblue),
),
labelText: "Select Date of Birth",
labelStyle: TextStyle(fontSize: 15, color: buttontext),
),
style: TextStyle(color: buttontext),
),
使用DateFormat()
var myFormat = DateFormat('yyyy-MM-dd');//define format here
Future<Null> _selectDate(BuildContext) async {
DateTime? _datePicker = await showDatePicker(
context: context,
initialDate: _date,
firstDate: DateTime(1947),
lastDate: DateTime(2023),
initialDatePickerMode: DatePickerMode.year
);
if (_datePicker != null && _datePicker != _date) {
var fomatDate=myFormat.format(_datePicker);
setState(() {
_date = fomatDate;
print(
_date.toString(),
);
});
}
}
试试下面的代码,希望对你有帮助。为日期格式添加 intl package
声明变量:
DateTime? selectedDate;
DateTime _date = DateTime.now();
var dob;
您的日期选择器:
datePicker() async {
selectedDate = await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2000),
lastDate: DateTime(2100),
helpText: 'Campaign Date Picker'.toUpperCase(),
);
if (selectedDate != null && selectedDate != _date) {
setState(() {
_date = selectedDate!;
dob = DateFormat('dd-MM-yyyy')
.format(_date); //change date format on your need
print(
dob.toString(),
);
});
}
}
您的小部件:
TextFormField(
onTap: () {
setState(() {
datePicker();
});
},
decoration: InputDecoration(
hintText: (dob.toString()),
border: OutlineInputBorder(),
labelText: "Select Date of Birth",
floatingLabelBehavior: FloatingLabelBehavior.never,
),
),
你的成绩->