gpt4 book ai didi

flutter - 如何在flutter中从模态返回变量到小部件?

转载 作者:行者123 更新时间:2023-12-03 04:33:37 26 4
gpt4 key购买 nike

我有一个带有列表框的小部件,单击一个项目会打开一个窗口进行编辑。在其中,我可以更改2个字段,均为DateTime类型。
我不明白如何将这些变量从模态窗口返回到主窗口小部件,我将很高兴为您提供帮助
在模式中,我有两个TextEdit Controller 用于编辑:

TextEditingController _comeInController = TextEditingController();
TextEditingController _goOutController = TextEditingController();
我想将此变量返回到主窗口小部件并发送到服务器
而我的模态:
showMaterialModalBottomSheet(
expand: false,
context: context,
builder: (context, scrollController) =>
Container(
height: 400,
child: RedactTimesheeft(
comeIN: DateTime.parse(
staffTimeList.parseComeIn),
goOut: staffTimeList.parseGoOut != null
? DateTime.parse(
staffTimeList.parseGoOut)
: null,
),
),
)

最佳答案

如果要在ModalBottomSheet中键入文本并在基础窗口小部件中获取文本,则只需在两者中使用相同的TextEditingController,即可将其初始化并放置在主窗口小部件中。
这是一个工作示例:

import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';

main() {
runApp(MaterialApp(
home: Scaffold(
body: MyApp(),
),
));
}

class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
TextEditingController _controller = TextEditingController();

@override
void dispose() {
_controller.dispose();
super.dispose();
}

@override
Widget build(BuildContext context) {
return Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
RaisedButton(
onPressed: () => showModalBottomSheet(
isScrollControlled: true,
context: context,
builder: (BuildContext context) {
return Material(
child: Padding(
padding: MediaQuery.of(context).viewInsets,
child: TextField(
controller: _controller,
),
),
);
}).whenComplete(() => setState(() {})),
child: Text('Click to enter text'),
),
Text(_controller.text == '' ? 'No text entered yet' : _controller.text),
],
),
);
}
}

关于flutter - 如何在flutter中从模态返回变量到小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64512226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com