Вы можете легко получить полноэкранное изображение, следуя приведенному ниже коду. Также бонус: анимация героя. Надеюсь, это поможет
GestureDetector(
onTap: () {
Navigator.push(context,
MaterialPageRoute(builder: (_) {
return FullScreenImage(
imageUrl:
imageUrlHere,
tag: "generate_a_unique_tag",
);
}));
},
child: Hero(
child: YourImageView,
tag: "generate_a_unique_tag",
),
),
Я использовал cached_network_image 2.0.0 для кэширования и отображения изображения
class FullScreenImage extends StatelessWidget {
final String imageUrl;
final String tag;
const FullScreenImage({Key key, this.imageUrl, this.tag}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.black87,
body: GestureDetector(
child: Center(
child: Hero(
tag: tag,
child: CachedNetworkImage(
width: MediaQuery.of(context).size.width,
fit: BoxFit.contain,
imageUrl: imageUrl,
),
),
),
onTap: () {
Navigator.pop(context);
},
),
);
}
}