android - 如何在颤动中将.dart文件的变量获取到另一个.dart文件
问题描述
class widget_model extends StatelessWidget {
final text;
widget_model(this.text);
String input = "";
@override
Widget build(BuildContext context) {
return Expanded(
child: Row(
children: <Widget>[
Expanded(
child: Column(
children: <Widget>[
Container(
height: 60,
alignment: Alignment.center,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Colors.pink, Colors.purpleAccent])),
child: InkWell(
onTap: () {
print("Pressed one");
print("The text is $input");
input=input+"1";
print("The text after $input");
Navigator.push(context, MaterialPageRoute(builder: (BuildContext)=>Homepage(input)));
},
child: Text(
"$text",
style: TextStyle(color: Colors.white, fontSize: 50),
),
),
),
],
),
),
SizedBox(
height: 10,
width: 5,
)
],
),
);
}
}
此 .dart 文件中的变量“输入”已在无状态小部件中声明,但我怎样才能将此变量获取到另一个 .dart 文件。如何通知变量值的变化。
解决方案
你可以通过两种方式做到这一点
- 使用 pub.dev 中的 Provider 包,然后您可以在任何其他 dart 文件中使用该变量。这是比较复杂的程序的首选方式。
- 您可以在小部件外部声明和初始化变量,也可以在另一个 dart 文件中使用该变量。像这样,
String input = "";
class widget_model extends StatelessWidget {
final text;
widget_model(this.text);
@override
Widget build(BuildContext context) {
return Expanded(
child: Row(
children: <Widget>[
Expanded(
child: Column(
children: <Widget>[
Container(
height: 60,
alignment: Alignment.center,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Colors.pink, Colors.purpleAccent])),
child: InkWell(
onTap: () {
print("Pressed one");
print("The text is $input");
input=input+"1";
print("The text after $input");
Navigator.push(context, MaterialPageRoute(builder: (BuildContext)=>Homepage(input)));
},
child: Text(
"$text",
style: TextStyle(color: Colors.white, fontSize: 50),
),
),
),
],
),
),
SizedBox(
height: 10,
width: 5,
)
],
),
);
推荐阅读
- python - 如何用带注释的句子更新 VADER 词典?
- android - 评估根项目“user-auth-retrofit”时出现问题
- r - 我的 CSV 数据在经过这么多行后通过 read.table 读入 R 时,停止创建新行并用“,”分隔值
- sql - 将日期范围转换为多行
- javascript - 城市和坐标表,然后使用我的坐标,看看哪个城市坐标离我更近
- postgresql - 如何在 postgres 中处理 DST
- javascript - 使用 Javascript 生成新的 HTML 文档
- angular - 检测画布视频中的颜色变化
- c# - 如何在 Xamarin.Forms 项目中使用 azure devops?
- azure - 如何根据订阅、区域和另一个标签批量更新 Azure 中的特定标签?