如何解决Flutter-从ShowDatePicker选择日期时如何设置另一个类的状态
这是我的MainDashboard类,它具有一个浮动按钮。单击浮动按钮后,将弹出一个底表
import 'package:flutter/material.dart';
import 'package:mytodoapp/Screens/toDoScreen/components/dashboard_custom_textfield.dart';
import 'package:mytodoapp/Screens/toDoScreen/components/dashboard_dateandtime_.dart';
class MainDashboard extends StatefulWidget {
@override
_MainActivityState createState() => _MainActivityState();
}
class _MainActivityState extends State<MainDashboard> {
String chosenDate = "";
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
backgroundColor: Colors.white12,floatingActionButton: FloatingActionButton(
child: Icon(
Icons.edit,color: Colors.white,),onPressed: onButtonPressed,backgroundColor: Colors.teal,foregroundColor: Colors.black,);
}
void onButtonPressed() {
showModalBottomSheet(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(20),topRight: Radius.circular(20))),backgroundColor: Colors.grey[850],isScrollControlled: true,context: context,builder: (context) {
return StatefulBuilder(
builder: (BuildContext context,StateSetter mystate) {
return Container(
height: MediaQuery.of(context).copyWith().size.height * 0.65,child: Column(
mainAxisAlignment: MainAxisAlignment.center,children: [
ListTile(
leading: Icon(Icons.calendar_today,color: Colors.teal),title: Text(chosenDate),trailing: Icon(Icons.timer,DashboardCustomTextField('Title',1),SizedBox(height: 10),DashboardCustomTextField('Description',5),DashBoardDateTime(),MaterialButton(
onPressed: () {},color: Colors.teal,child: Icon(Icons.save,size: 50,color: Colors.white),padding: EdgeInsets.all(16),shape: CircleBorder(),],));
});
});
}
}
如您所见,存在一个Date and Time FlatButton,它属于下面给出的DashBoardDateTime类。 这是DashBoardDateTime类,其中包含自定义showDatePicker和showTimePicker小部件:
import 'package:flutter/material.dart';
class DashBoardDateTime extends StatefulWidget {
@override
_DashBoardDateTimeState createState() => _DashBoardDateTimeState();
}
class _DashBoardDateTimeState extends State<DashBoardDateTime> {
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.only(top: 12.0),child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,children: [
FlatButton(
onPressed: () async {
showDatePicker(
builder: (context,child) {
return Theme(
data: ThemeData(
primarySwatch: Colors.teal,splashColor: Colors.green,brightness: Brightness.dark),child: child,);
},initialDate: DateTime.now(),firstDate: DateTime(2000),lastDate: DateTime(2050),);
},child: Text("Date",style: TextStyle(fontSize: 15,color: Colors.white)),shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5),side: BorderSide(color: Colors.teal)),
现在的问题是,如何修改MainDashboard类中存在的BottomSheet内部的状态,以便每当我使用DashBoardDateTime类中的showDatePicker选择新的Date时,它将更新MainDashboard类的BottomSheet窗口小部件的状态。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。