【发布时间】:2021-01-22 00:18:24
【问题描述】:
我正在做一个颤振项目,我在标签栏中有 3 个标签。 在选项卡 1 和选项卡 2 中,有使用 ListView 显示一些数据的列表。单击列表项时,我想将一些字符串传递给选项卡 3 并显示选项卡 3。
下面是我的主页代码:
class _HomePageState extends State<HomePage>
with SingleTickerProviderStateMixin {
TabController controller;
@override
void initState() {
super.initState();
controller = new TabController(vsync: this, length: 3);
}
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () {},
child: DefaultTabController(
length: 3,
child: Scaffold(
appBar: AppBar(
title: Text("InstaPost"),
backgroundColor: Colors.black45,
bottom: TabBar(
tabs: [
Tab(
text: "Tab 1",
),
Tab(text: "Tab 2"),
Tab(text: "Tab 3"),
// Tab(text: "My Posts")
],
),
),
body: TabBarView(
children: <Widget>[
Tab1(),
Tab2(),
Tab3(),
],
),
),
),
);
}
}
因此,当应用程序启动时,第一个屏幕将是选项卡 1,其中显示了名称列表。代码如下
class _HashtagPageState extends State<HashtagPage> {
Future<dynamic> getLists() async {
// get list
}
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () {},
child: FutureBuilder(
future: getLists(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Container(
child: SpinKitDoubleBounce(color: Colors.green, size: 100),
);
} else {
// log(snapshot.data.toString());
var data = snapshot.data;
return Container(
child: Column(
children: <Widget>[
Expanded(
child: ListView.separated(
itemCount: data.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(data[index]),
onTap: () {
// code to pass a string value to tab 3 and navigate to tab 3
},
);
},
),
)
],
),
);
}
},
),
);
}
}
当单击选项卡 1 中的列表项时,我应该如何将字符串传递给选项卡 3 并同时导航到选项卡 3?
【问题讨论】:
-
请分享您尝试解决此问题的代码。
-
有很多方法可以将值从一个传递到另一个,您可以使用构造函数、参数或静态变量。请提供更多详细信息或代码,以便我们找出您的确切问题。