Buscar pacotes, repositórios e categorias de apps

Capa de avatar_stack
Detalhes do pacotev3.0.0

avatar_stack

Pilha de avatares avançada e ágil com configurações. Permite colocar muitos avatares ou outros widgets em um espaço pequeno.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
7,5 mil
Curtidas
200
Pontos Pub
155

Instalar pacote

flutter pub add avatar_stack

Visão geral do pacote

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

AvatarStack é um pacote Flutter que permite exibir de forma eficiente múltiplos avatares ou widgets em uma pilha compacta e visualmente atraente. Projetado para interfaces de chat, perfis em grupo e aplicativos colaborativos, suporta espaçamento personalizável, tratamento de overflow e renderização em camadas. O pacote é leve e altamente adaptável, permitindo que desenvolvedores integrem grupos dinâmicos de avatares com pouquíssimo código. Funciona em todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux.

Casos de uso

  • indicadores de bate-papo em grupo
  • Membro da equipe exibe
  • avatares de projetos colaborativos
  • aglomerados de usuários de mídia social
  • Visualizações de grupo de perfil

Principais recursos

  • empilhamento de avatar personalizável
  • Tratamento de overflow com badges de contagem
  • Suporte a qualquer widget, não apenas avatares
  • Layout responsivo em dispositivos
  • Empilhamento suave e controle de z-index
  • Compatibilidade multiplataforma

Indicado para

  • Aplicativos de bate-papo
  • Ferramentas de colaboração em equipe
  • Recursos de redes sociais
  • indicadores de usuário do painel
  • UIs com dados de usuário densos

Considerações

  • O desempenho pode degradar com um número muito grande de avatares
  • Opções de estilização embutidas limitadas além da configuração básica
  • Requer manipulação manual de interações de toque em itens empilhados
  • Não otimizado para atualizações de frequência extremamente alta

README original

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

Avatar stack with animation

Build Status Coverage Status Pub

Avatar stack is used to visually represent users, places, and things in a limited space.

Example

Try Live Demo :-)

Example

import 'package:avatar_stack/animated_avatar_stack.dart';
import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(
  home: Scaffold(
    body: Center(
      child: AnimatedAvatarStack(
        height: 50,
        avatars: [
          for (var n = 0; n < 15; n++) NetworkImage('https://i.pravatar.cc/150?img=$n'),
        ],
      ),
    ),
  ),
));

Features

Example

Restrict amount of items

Usually the stack avatar shows all items as possible but you can restrict it by, say, five items. Restrict amount of items

Alignment

By default the stack avatar has left alignment one can change it.

center alignment

center alignment

right alignment

right alignment

Coverage

You can set how avatars will coverage each others.

max coverage is set to 70%

max coverage is set to 70%

min coverage is set to minus 50%

The negative coverage will set space between items. min coverage is set to minus 50%

Any widget for stack

You can use any widget to stack not only avatars Any widget for stack

Indent of an info item

The additional space between an info item (if exists) and other items. Indent of an info item

Stack laying

The way to tile items.

the first item is at the top

Indent of an info item

the fifth item is at the top

Indent of an info item

One can use any widget for stacking. Apply WidgetStack widget for that. For example:

import 'package:avatar_stack/avatar_stack.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(home: Example7WidgetStack()));
}

class Example7WidgetStack extends StatelessWidget {
  const Example7WidgetStack({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    final settings = RestrictedPositions(
      maxCoverage: -0.1,
      minCoverage: -0.5,
      align: StackAlign.right,
    );
    return Column(
      children: [
        const Text(
          'Any widgets for stack:',
        ),
        const SizedBox(height: 10),
        SizedBox(
          height: 50,
          child: WidgetStack(
            positions: settings,
            stackedWidgets: [
              for (var n = 0; n < 12; n++)
                FlutterLogo(
                  style: FlutterLogoStyle.stacked,
                  textColor: Color(0xFF * 0x1000000 +
                      n * 10 * 0x10000 +
                      (0xFF - n * 10) * 0x100),
                ),
              const FittedBox(
                  fit: BoxFit.fitHeight,
                  child: Text('A',
                      style: TextStyle(height: 0.9, color: Colors.orange))),
              const FittedBox(
                  fit: BoxFit.fitHeight,
                  child: Text('B', style: TextStyle(height: 0.9))),
              const FittedBox(
                  fit: BoxFit.fitHeight,
                  child: Text('C',
                      style: TextStyle(height: 0.9, color: Colors.green))),
            ],
            buildInfoWidget: (surplus) {
              return Center(
                  child: Text(
                '+$surplus',
                style: Theme.of(context).textTheme.headline5,
              ));
            },
          ),
        ),
      ],
    );
  }
}

You can also use the example from github https://github.com/cyrax111/avatar_stack/tree/master/example

Ideas

If you have any ideas on how to enhance this package or have any concern, feel free to make an issue.

Categorias

Repositório-fonte

Projetos que usam este pacote