仅在 onTap 函数上使用不同的屏幕导航

flutter different screen navigation using only on onTap function

当我在 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;
    }