يمكنك من صنع دالة يكون استخدامها عند الضغط على الصورة
void _gotoSingleImage(ImageModel imageModel, BuildContext context) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SingleImage(imageModel)),
);
}
ثم في دالة onPressed تضع التالي
_gotoSingleImage(imageModel[index], context);
ثم في الواجهة الثانية وليكن مثلا اسم الكلاس هو
class ImageCategory extends StatefulWidget {
// باقي كود الواجهة
}
قم بإنشاء متغير وليكن هكذا
final ImageModel imageModel;
ثم constructor يكون بهذا الشكل
ImageCategory(this.imageModel);
أي يكون الكلاس بهذا الشكل
class SingleImage extends StatefulWidget {
final ImageModel imageModel;
SingleImage(this.imageModel);
@override
_SingleImageState createState() => _SingleImageState();
}
class _SingleImageState extends State<SingleImage> {
@override
void initState() {
// TODO: implement initState
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
// باقي كود الواجهة
);
}
}
ثم باستخدام
widget.
يمكنك الوصول إلى المتغير imageModel وجلب محتوياته.
ثم يكون ImageModel بهذا الشكل
class ImageModel {
ImageModel({
this.id,
this.images,
});
int id;
List<ImageUrl> images;
factory ImageModel.fromJson(Map<String, dynamic> json) =>
ImageModel(
id: json["id"],
images: List<ImageUrl>.from(json["images"].map((x) => ImageUrl.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"id": id,
"images": List<dynamic>.from(images.map((x) => x.toJson())),
};
}
class ImageUrl {
ImageUrl({
this.id,
this.src,
this.name,
this.alt,
});
int id;
String src;
String name;
String alt;
factory ImageUrl.fromJson(Map<String, dynamic> json) => ImageUrl(
id: json["id"],
src: json["src"],
name: json["name"],
alt: json["alt"],
);
Map<String, dynamic> toJson() => {
"id": id,
"src": src,
"name": name,
"alt": alt,
};
}