https://github.com/fluttercandies/extended_image
https://github.com/fluttercandies/extended_image/tree/master/example
https://github.com/fluttercandies/extended_image/blob/master/example/lib/pages/zoom_image_demo.dart
трепетание конфет extended_image. Как мне увеличить изображение двойным нажатием 1 пальца вместо 2? Как вернуть скользящее изображение в навигатор, когда оно соскользнет со страницы?
Попытка реализовать масштабирование / панорамирование изображения двойным касанием одним пальцем вместо необходимости увеличения масштаба изображения до 2. Были две проблемы с этим кодом, и было интересно, есть ли у кого-нибудь идеи. Класс очень прост с двумя строками: в него передано изображение и заголовок.
1, мне нужно увеличить изображение при двойном нажатии. Я бы хотел, чтобы у пользователя была возможность расширять изображение одним пальцем, а не двумя. Думаю, мне нужно поместить этот код в самый конец. Хорошо, что после расширения двойное касание уменьшает размер изображения. Как заставить его сделать обратное, когда он имеет нормальный размер?
2, скольжение изображения со страницы приводит к черному экрану. К счастью, это не останавливает и не приводит к сбою приложения, но оставляет пользователю пустой экран и необходимость нажимать кнопку возврата системы. Я хотел бы, чтобы слайд вернул на исходный экран навигатор.
Во-первых, вот пример кода того, как я передаю изображение и заголовок в expandimage.dart.
FlatButton(
child: Image.asset(_kAsset5),
onPressed: () async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ExpandImage(
image: _kAsset5,
title: "\'go help\' 1",
)),
);
},
),
Вот код, который я использую для этого 'расширения изображения. dart 'и многое из этого основано на примере панорамирования / масштабирования из примера флаттера конфет / расширенного изображения.
import 'package:flutter/material.dart';
import 'package:extended_image/extended_image.dart';
class ExpandImage extends StatelessWidget {
final String image, title;
ExpandImage({this.image, this.title});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
backgroundColor: Colors.red[900],
appBar: AppBar(
backgroundColor: Colors.red[900],
leading: IconButton(
icon: Icon(Icons.close),
onPressed: Navigator.of(context).pop,
),
title: Text(
title,
style: TextStyle(
color: Colors.yellow,
inherit: true,
fontWeight: FontWeight.w300,
fontStyle: FontStyle.italic,
letterSpacing: 2.0, //1.2
),
),
centerTitle: true,
),
body: SizedBox.expand(
// child: Hero(
// tag: heroTag,
child: ExtendedImageSlidePage(
slideAxis: SlideAxis.both,
slideType: SlideType.onlyImage,
child: ExtendedImage(
//disable to stop image sliding off page && entering dead end without back button.
//setting to false means it won't slide at all.
enableSlideOutPage: true,
mode: ExtendedImageMode.gesture,
initGestureConfigHandler: (state) => GestureConfig(
minScale: 1.0,
animationMinScale: 0.8,
maxScale: 3.0,
animationMaxScale: 3.5,
speed: 1.0,
inertialSpeed: 100.0,
initialScale: 1.0,
inPageView: false,
),
// onDoubleTap: ? zoom in on image
fit: BoxFit.scaleDown,
image: AssetImage(
image,
),
),
),
),
),
);
}
}
Вот пример изображения, переданного внутрь. Страница становится красной при перемещении изображения, а затем становится черной, когда изображение соскальзывает со страницы.