Buscar pacotes, repositórios e categorias de apps

Capa de zoom_widget
Detalhes do pacotev2.0.1

zoom_widget

Widget para ampliar em um canvas de tamanho modificável que pode conter um widget filho.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
7,4 mil
Curtidas
215
Pontos Pub
125

Instalar pacote

flutter pub add zoom_widget

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O pacote zoom_widget fornece um widget personalizável do Flutter que permite zoom interativo em uma tela de tamanho ajustável. Permite aos desenvolvedores envolver qualquer widget filho com funcionalidades de zoom e panorâmica, sendo ideal para imagens, mapas ou elementos de interface complexos que exigem exploração detalhada. O widget suporta gestos táteis e interações com mouse em múltiplas plataformas, garantindo comportamento consistente no Android, iOS, Web, macOS, Windows e Linux. É leve e projetado para integração perfeita em aplicativos Flutter existentes.

Casos de uso

  • Visualizadores de imagem interativos
  • Quadros brancos digitais
  • Interfaces de navegação por mapa
  • Ferramentas de visualização de dados
  • Aplicativos educacionais com conteúdo escalável

Principais recursos

  • Suporta gestos de pinça para zoom e arrasto
  • Tamanho de tela ajustável
  • Compatibilidade multiplataforma
  • Transições de animação suaves
  • Limites de zoom personalizáveis
  • Integração fácil com widgets existentes

Indicado para

  • Desenvolvedores criando visualizações interativas
  • Aplicativos que exigem exibição de conteúdo escalável
  • Projetos que precisam de suporte a multi-toque
  • Aplicativos multiplataforma com controles por gestos
  • Interfaces de usuário que envolvem gráficos ou diagramas detalhados

Considerações

  • O desempenho pode variar com quadros muito grandes
  • Requer manipulação cuidadosa do tamanho do widget filho
  • Pode ser necessário lógica adicional para casos de borda como superposição
  • Não otimizado para atualizações de alta frequência
  • Mais adequado para conteúdo estático ou com atualizações pouco frequentes

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Flutter zoom widget

With this widget you can create a customizable canvas in which you can zoom in flutter.

It is possible to customize virtually all the canvases of the canvas such as color, background color, acitvate and deactivate scrolls, change the color of scrolls, modify the sensitivity of the zoom, the initial zoom enters other aspects found in the construction of the Zoom class.

Installation

Add to pubspec.yaml:

dependencies:
zoom_widget: ^2.0.0

How to use

You only need to create an instance of the Zoom class in the child of your Scaffold or within the widget of your choice, within the child attribute, put the widget that you want to zoom in and the width and height of the canvas where it will be made zoom.

Import
import 'package:zoom_widget/zoom_widget.dart';
Simple examples

Center flutter logo using all space of view port:

 Zoom(
        initTotalZoomOut: true,
        child: Center(
          child: FlutterLogo(
            size: 1000,
          ),
        ),
      );

Center text with max width and max height:

Zoom(
    maxZoomWidth: 1800,
    maxZoomHeight: 1800,
    child: Center(
        child: Text("Happy zoom!!"),
    )
);
Callbacks

It is possible to obtain the x and y position of our canvas with respect to the scrolls and and the zoom and scale of our canvas using two simple callbacks in our Zoom instance.

Zoom(
    maxZoomWidth: 1800,
    maxZoomHeight: 1800,
    onTap: (){
        print("Widget clicked");
    },
    onPositionUpdate: (Offset position){
        print(position);
    },
    onScaleUpdate: (double scale,double zoom){
        print("$scale  $zoom");
    },
    child: Center(
        child: Text("Happy zoom!!"),
    )
);
Customize properties

Customizing the properties you can get amazing results.

  • width (Depreceted) double.
  • height (Depreceted) double.
  • maxZoomWidth double.
  • maxZoomHeight double.
  • backgroundColor Color.
  • canvasColor Color.
  • onPositionUpdate() Callaback.
  • onScaleUpdate() Callaback.
  • onTap() Callaback.
  • scrollWeight double.
  • opacityScrollBars double 0.0-1.0.
  • colorScrollBars Color.
  • centerOnScale bool.
  • initZoom (Depreceted) double.
  • initPosition Offset.
  • initScale double
  • enableScroll bool.
  • zoomSensibility double.
  • doubleTapZoom bool.
  • transformationController TransformationController.
  • radiusScrollBars double.
  • doubleTapScaleChange double.
  • doubleTapAnimDuration Duration.
  • initTotalZoomOut bool.
Customized properties example
Zoom(
    maxZoomWidth: 1800,
    maxZoomHeight: 1800,
    canvasColor: Colors.grey,
    backgroundColor: Colors.orange,
    colorScrollBars: Colors.purple,
    opacityScrollBars: 0.9,
    scrollWeight: 10.0,
    centerOnScale: true,
    enableScroll: true,
    doubleTapZoom: true,
    zoomSensibility: 0.05,
    onTap: (){ 
        print("Widget clicked");
    }
    onPositionUpdate: (position){
        setState(() {
            x=position.dx;
            y=position.dy;
        });
    },
    onScaleUpdate: (scale,zoom){
        setState(() {
            _zoom=zoom;
        });
    },
    child: Center(
        child: Text("x:${x.toStringAsFixed(2)} y:${y.toStringAsFixed(2)} zoom:${_zoom.toStringAsFixed(2)}",style: TextStyle(color: Colors.deepPurple,fontSize: 50),),
    ),
);
Complex example

It can be used for more complex things like an image gallery.

All examples of gifs are inside the example

Categorias

Dependências

Lista de dependências 1 itens

Repositório-fonte

Projetos que usam este pacote