仅使用onTap功能即可进行不同的屏幕导航



在处理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;
}

相关内容

  • 没有找到相关文章

最新更新