【发布时间】:2022-01-11 22:18:30
【问题描述】:
我正在开发一个由三个屏幕组成的颤振应用程序,第一个是一个列表视图小部件,我可以从列表变量中获取数据,如下所示:
这是列表视图:
child: ListView.builder(
padding: EdgeInsets.only(
top: 10.0,
),
itemCount: data.length,
itemBuilder: (context, index) {
final 2data =data[index];
return GestureDetector(
onTap: () {
Navigator.push(context,
MaterialPageRoute(builder: (context) {
return dataSecondScreen(data: 2data,);
}));
},
这是我定义数据的列表
final List<Data> data = [ //Data is a class
Data(
1, //id
"Eli", //name
18, //years old
),
Data(
2, //id
"Axel", //name
23, //years old
)]
当我按下一个列表视图项目时,它会将我重定向到另一个屏幕,它会显示列表的所有信息(取决于我之前按下的索引,我的意思是,如果我按下索引为 1 的项目,在第二个屏幕我可以看到索引为 1) 的项目的信息
这是我的问题,在第二个屏幕中,我有索引为 1 的项目的所有信息,我有一个可点击的图像,我想要这样的东西: 如果我单击该图像,我想更改具有不同索引的状态(或移动到另一个屏幕),例如,如果我在具有索引 1 的所有信息的屏幕中,我希望能够单击该图像并将索引 1 屏幕的信息更改为索引 2(或 3,4 ,5...)。那么,我如何能够从列表中选择并显示我想要的信息?
更新:
在本节中,我尝试应用 PageView 以便在页面之间移动,但是,当我向左滚动时,只会出现相同的第一项,第二项永远不会显示它
@override
Widget build(BuildContext context) {
return Scaffold(
body: Constant.main ? Init( ) : Stadis());
}
这是页面视图
Widget Init(){
int activeIndex = 0;
final screenHeight = MediaQuery.of(context).size.height;
int selectedIcon = 0;
return PageView.builder(
itemCount: data.length,
physics: BouncingScrollPhysics(),
controller: _controller,
itemBuilder: (context, index) {
return Stack(
alignment: Alignment.center,
children: <Widget>[
Column(...
【问题讨论】:
-
请详细说明您的问题
-
先生,我想知道如何根据 id(我已经定义的)选择列表的位置并将其显示在屏幕上
标签: list flutter listview listviewitem