![](/img/trans.png)
[英]how to pass data from one screen to another screen with pushNamed in FLutter?
[英]How to pass text widget data from one screen to another screen in Flutter?
我正在嘗試將文本小部件數據從一個屏幕傳遞到另一個屏幕,但我不知道如何在顫振中做到這一點。
我知道如何從文本字段中做到這一點並在屏幕之間傳遞。 例如使用控制器。
child: Text('Repetition', style: TextStyle(fontSize: 18, fontWeight: FontWeight.normal),)),
onPressed: ()=>{
Navigator.push(context, MaterialPageRoute(
builder:(context) => FingerGoalSt()))
},
我想將重復字符串傳遞到下一個屏幕。
在其他平台上這很容易,但在顫振中我不知道,因為我是新手。 謝謝。
var yourString = 'Repetition'
child: Text(yourString, style: TextStyle(fontSize: 18, fontWeight: FontWeight.normal),)),
onPressed: ()=>{
Navigator.push(context, MaterialPageRoute(
builder:(context) => FingerGoalSt(yourString)))
},
在你的FingerGoalSt
中添加一個帶參數的構造函數。
您可以傳遞存儲數據的變量
child: Text(snapshot.data.docs[index].get('name'), style: TextStyle(fontSize: 18, fontWeight: FontWeight.normal),)),
onPressed: ()=>{
Navigator.push(context, MaterialPageRoute(
builder:(context) => FingerGoalSt(snapshot.data.docs[index].get('name'))))
},
請參考以下代碼
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => FingerGoalSt(
textVal: "Repetition",
),
),
);
class FingerGoalSt extends StatefulWidget {
final String textVal;
const FingerGoalSt({Key key, this.textVal}) : super(key: key);
@override
_FingerGoalStState createState() => _FingerGoalStState();
}
class _FingerGoalStState extends State<FingerGoalSt> {
}
請嘗試以下示例代碼
示例 1:
onPressed: () async {
Navigator.pushNamed(context, '/FingerGoalSt',arguments:{"textvalue":"any text"});}
class FingerGoalSt extends StatelessWidget {
const FingerGoalSt({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
Map arguments = ModalRoute.of(context)?.settings.arguments as Map;
return Scaffold(
appBar: AppBar(
title: Text('Value : ${arguments['textvalue']}'),
),
body: Text("${arguments['textvalue']}"),
);
}
}
示例 2:
class FirstScreen extends StatefulWidget {
const FirstScreen({Key key}) : super(key: key);
@override
_FirstScreenState createState() => _FirstScreenState();
}
class _FirstScreenState extends State<FirstScreen> {
@override
Widget build(BuildContext context) {
return Container(
child: Center(
child: InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SecondScreen(
dataList: ["Data"],
),
),
);
},
child: Text(
"Second Screen",
),
),
),
);
}
}
class SecondScreen extends StatefulWidget {
final List dataList;
const SecondScreen({Key key, this.dataList}) : super(key: key);
@override
_SecondScreenState createState() => _SecondScreenState();
}
class _SecondScreenState extends State<SecondScreen> {
@override
Widget build(BuildContext context) {
return Container(
child: Center(
child: Text(
widget.dataList[0].toString(),
),
),
);
}
}
有關更多信息,請參閱此鏈接說明
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.