[英]How to add a clickable button to a DropdownMenuItem as a child in flutter?
我正在嘗試將DateTimePicker
添加到dropdown menu
以便用戶可以通過它選擇特定的date
。 clicked
dropDropdownMenuItem
后如何顯示DateTimePicker
? 我已包含以下代碼。
import 'package:flutter/material.dart';
import 'dart:async';
class CustomDropDown extends StatefulWidget {
DateTime selectedEndDate = new DateTime.now();
@override
_CustomDropDownState createState() => _CustomDropDownState();
}
class _CustomDropDownState extends State<CustomDropDown> {
var _value = '1';
DateTime selectedDate = DateTime.now();
Future<Null> _selectDate(BuildContext context) async {
final DateTime picked = await showDatePicker(
context: context,
initialDate: selectedDate,
firstDate: DateTime(2015, 8),
lastDate: DateTime(2101));
if (picked != null && picked != selectedDate)
setState(() {
selectedDate = picked;
widget.selectedEndDate = picked;
});
}
@override
Widget build(BuildContext context) {
return Container(
child: DropdownButton(
items: [
DropdownMenuItem(
value: "1",
child: InkWell(
child: Text(
'Forever',
style: TextStyle(color: Colors.teal, fontSize: 23),
),
onTap: () => (widget.selectedEndDate = DateTime(2100)),
),
),
DropdownMenuItem(
value: "2",
child: InkWell(
onTap: () => _selectDate(context),
child: Text(
'Select end date: ${selectedDate.day}/${selectedDate.month}/${selectedDate.year}',
style: TextStyle(color: Colors.teal, fontSize: 23),
),
),
),
],
onChanged: (val) => setState(() {
_value = val;
}),
value: _value,
style: TextStyle(color: Colors.teal, fontSize: 23),
isExpanded: true,
));
}
}
您可以檢查在onChange()中選擇的值:
onChanged: (val) =>
setState(() {
if (val == "2") {
//Display select date
}
_value = val;
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.