fluttercandies extended_image. Как мне увеличить изображение двойным нажатием 1 пальца вместо 2? - PullRequest
0 голосов
/ 08 октября 2019

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,
              ),
            ),
          ),
        ),
      ),
    );
  }
}

Вот пример изображения, переданного внутрь. Страница становится красной при перемещении изображения, а затем становится черной, когда изображение соскальзывает со страницы. flutter extended_image

...