flutter - 在 main 中发送一个参数并在小部件的构建中使用它(Flutter dart)
问题描述
我有一个 main.dart 文件。我想用 Tapboxes 创建按钮部分 wigdet。但是每个 Tapbox 都必须有自己的价值。
Widget buttonSection = Container(
child: Row(
// mainAxisAlignment: MainAxisAlignment.center,
children: [
Column(
children: [
Tapbox(5),
Tapbox(4),
],
),
Column(
children: [
Tapbox(12),
Tapbox(8),
],
),
),
);
这是我所有的 Tapbox wigdet 文件:
import 'package:flutter/material.dart';
class TapboxA extends StatefulWidget {
TapboxA({
Key key,
this.number1,
}) : super(key: key);
final number1;
@override
_TapboxAState createState() => _TapboxAState();
}
class _TapboxAState extends State<TapboxA> {
bool _active = false;
void _handleTap() {
setState(() {
_active = !_active;
});
}
Widget build(BuildContext context) {
return GestureDetector(
onTap: _handleTap,
child: Container(
child: Center(
child: Text(
_active ? "Tapbox parameter value" : "Tapbox parameter value",
style: TextStyle(fontSize: 12.0, color: Colors.white),
),
),
width: 60.0,
height: 60.0,
decoration: BoxDecoration(
color: _active ? Colors.lightGreen[700] : Colors.grey[600],
),
),
);
}
}
但是当我在 Tapbox 中获取参数时,我无法在状态部分访问。我该如何修复此代码。
解决方案
在这里使用模型是传递给下一个小部件的列表
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => TaskDetailsPage(
detail: model,
),
),
);
到下一页或小部件这里资产是列表,您可以编写 String getData;
class TaskDetailsPage extends StatefulWidget {
final Asset detail;
TaskDetailsPage({
Key key,
@required this.detail,
}) : super(key: key);
@override
_TaskDetailsPageState createState() => _TaskDetailsPageState();
}
和访问是
Text(
widget.detail.title,
style: TextStyle(fontSize: 24),
),
推荐阅读
- parsing - 如何在 Java 中编写谷歌 protobuf 消息?
- ssl - URL 重定向导致在我的 Web 应用程序 + VirtualMin 中下载文件
- asp.net - 如何在 aspx 文件 site.master 页面中设置 baseurl
- python - 从 Jupyter 笔记本读取 csv 文件
- deep-learning - 如何改进 CNN 模型?
- javascript - 登录时如何将我的 UserID 放入数组中
- python - 如何将多索引 DataFrame 带入嵌套字典结构?
- assembly - 如何检查符号是否是 TASM 宏中的寄存器?
- html - 如何在网络浏览器中显示 rtmp 直播流?
- php - json解码和提取后无法删除空白字符/白线