在处理flutter中的数据列表时,我如何导航到不同的路线,在我的情况下,所有的卡都会将我导航到同一路线。
面临此问题的相关代码,
Column(
children: levelData.map((value) {
return Container(
margin: EdgeInsets.symmetric(vertical: 10.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(13.0),
border: Border.all( color: AppColors().containerBorder)
),
child: AppListTile(
contentPadding: EdgeInsets.all(15.0),
onTap: () {
},
title: Text(
value['name'],
style: TextStyle(
fontSize: displayWidth(context) * 0.045,
color: AppColors().black
),
),
subtitle: Text(
value['description'],
style: TextStyle(
color: AppColors().black,
fontSize: displayWidth(context) * 0.035
),
),
trailing: Icon(
Icons.arrow_forward_outlined,
size: displayWidth(context) * 0.08,
color: AppColors().orange,
),
),
);
}).toList(),
),
flutter的一个好处是可以将函数存储为变量,并且可以将变量存储为数组。因此,您可以创建一个数组并存储您希望瓦片在该数组中执行的功能,每个索引都应该表示您的建筑现在的列表瓦片的索引。这是一个样本阵列
var functionsArray = [
(){print("hello");},
(){print("hello");},
];
您可以编辑您的代码以符合以下形式:
List<Widget> getData(levelData){
List<AppListTile> data = []
for(int i=0;i < levelData.length; i++){
var tileData = levelData[i];
Function myFunction = functionsArray[i];
tile = AppListTile(onTap: myFunction);
data.add(tile);
}
return data;
}