Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev2.0.0

flutter_chips_input

Biblioteca Flutter para construção de campos de entrada com opções de entrada como InputChips.

Downloads em 30 dias
1,8 mil
Curtidas
106
Pontos Pub
70

Instalar pacote

flutter pub add flutter_chips_input

Visão geral do pacote

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

Uma biblioteca Flutter que permite a criação de campos de entrada onde os usuários podem adicionar e gerenciar chips como opções de entrada. Suporta adição dinâmica de chips, remoção e personalização, tornando-a ideal para formulários baseados em tags ou seleção. O pacote se integra perfeitamente aos componentes do design material do Flutter e permite que desenvolvedores definam estilos personalizados de chips, regras de validação e comportamentos de entrada. É particularmente útil em cenários que exigem marcação de conteúdo guiada pelo usuário ou entradas de múltipla seleção.

Casos de uso

  • Sistemas de marcação
  • Entradas de formulário multipla escolha
  • Filtragem de conteúdo dinâmico
  • Entrada de palavra-chave gerada pelo usuário
  • Campo de formulário com chips interativos
  • Pesquisar com tags sugeridas

Principais recursos

  • Entrada de chip interativa
  • Estilo de chip personalizável
  • Gerenciamento em tempo real de chips
  • Suporte para validação
  • Manipulação de entrada extensível
  • Integração fácil com formulários existentes

Indicado para

  • Desenvolvedores construindo interfaces do usuário baseadas em tags
  • Formulários que exigem múltiplas seleções
  • Aplicações com entrada de usuário dinâmica
  • UIs que precisam de feedback visual na entrada
  • Equipes usando Flutter para aplicativos móveis

Considerações

  • Documentação limitada de comportamento específico do plataforma
  • Nenhuma funcionalidade de autocompletar embutida
  • Requer manipulação manual da persistência de dados do chip
  • Pode ser necessário estilização adicional para layouts complexos
  • Não otimizado para conjuntos de dados muito grandes

README original

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

flutter_chips_input

Flutter library for building input fields with InputChips as input options.

Pub Version GitHub Workflow Status Codecov CodeFactor Grade

GitHub OSS Lifecycle Gitter

Usage

Installation

Follow installation instructions here

Import
import 'package:flutter_chips_input/flutter_chips_input.dart';
Example
ChipsInput
ChipsInput(
    initialValue: [
        AppProfile('John Doe', 'jdoe@flutter.io', 'https://d2gg9evh47fn9z.cloudfront.net/800px_COLOURBOX4057996.jpg')
    ],
    decoration: InputDecoration(
        labelText: "Select People",
    ),
    maxChips: 3,
    findSuggestions: (String query) {
        if (query.length != 0) {
            var lowercaseQuery = query.toLowerCase();
            return mockResults.where((profile) {
                return profile.name.toLowerCase().contains(query.toLowerCase()) || profile.email.toLowerCase().contains(query.toLowerCase());
            }).toList(growable: false)
                ..sort((a, b) => a.name
                    .toLowerCase()
                    .indexOf(lowercaseQuery)
                    .compareTo(b.name.toLowerCase().indexOf(lowercaseQuery)));
        } else {
            return const <AppProfile>[];
        }
    },
    onChanged: (data) {
        print(data);
    },
    chipBuilder: (context, state, profile) {
        return InputChip(
            key: ObjectKey(profile),
            label: Text(profile.name),
            avatar: CircleAvatar(
                backgroundImage: NetworkImage(profile.imageUrl),
            ),
            onDeleted: () => state.deleteChip(profile),
            materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
        );
    },
    suggestionBuilder: (context, state, profile) {
        return ListTile(
            key: ObjectKey(profile),
            leading: CircleAvatar(
                backgroundImage: NetworkImage(profile.imageUrl),
            ),
            title: Text(profile.name),
            subtitle: Text(profile.email),
            onTap: () => state.selectSuggestion(profile),
        );
    },
)

To-do list

  • [x] Ability to limit the number of chips
  • [x] Overlay doesn't move when input height changes i.e. when chips wrap
  • [ ] Create a FormField implementation (ChipsInputField) to be used within Flutter Form Widget

Known Issues

  • Deleting chips with keyboard on IOS makes app to crush (Flutter Issue with special characters used as replacement characters). Already reported #1
  • For some reason Overlay floats above AppBar when scrolling

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.