Buscar pacotes, repositórios e categorias de apps

Capa de fluttertagger
Detalhes do pacotev2.3.2

fluttertagger

Um pacote Flutter que permite a extensão de TextFields para fornecer capacidades de marcação (menções de usuários, hashtags, etc).

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
15 mil
Curtidas
96
Pontos Pub
160

Instalar pacote

flutter pub add fluttertagger

Visão geral do pacote

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

FlutterTagger é um pacote Flutter que aprimora TextFields com funcionalidade de tags, permitindo que os usuários digitem e gerenciem tags como menções ou hashtags. Ele oferece uma maneira fluida de reconhecer, destacar e interagir com texto marcado em tempo real. O pacote suporta múltiplas plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux, tornando-o ideal para aplicativos de redes sociais e mensagens. Com estilos personalizáveis e manipulação de eventos, os desenvolvedores podem integrar facilmente sugestões de tags e interações em seus aplicativos.

Casos de uso

  • seções de comentários em redes sociais
  • sistemas de menção de usuário
  • Rastreamento de hashtags em posts
  • Aplicações de bate-papo em tempo real
  • Marcação de conteúdo em formulários
  • Edição de texto interativa

Principais recursos

  • Reconhecimento de etiquetas em tempo real
  • Estilo de tag personalizável
  • Integração de sugestão de dropdown
  • Compatibilidade multiplataforma
  • Callbacks de evento para ações de tag
  • Envoltório de TextField extensível

Indicado para

  • Desenvolvedores construindo recursos sociais
  • Aplicativos que exigem marcação do usuário
  • Aplicativos de mensagens ou fóruns
  • Plugins para ferramentas de criação de conteúdo
  • Projetos que precisam de entradas de texto interativas

Considerações

  • Requer manipulação cuidadosa da seleção de texto
  • Pode ser necessário lógica personalizada para análise complexa de tags
  • Impacto no desempenho com listas grandes de tags
  • Validação embutida limitada
  • Depende de um gerenciamento adequado de estado
  • Não projetado para edição de texto rico além da marcação

README original

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

FlutterTagger

FlutterTagger

likes pub points code coverage

FlutterTagger is a Flutter package that allows for the extension of TextFields to provide tagging capabilities. A typical use case is in social apps where user mentions and hashtags features are desired.

Install 🚀

In the pubspec.yaml of your flutter project, add the following dependency:

dependencies:
  fluttertagger: ^2.3.2

Import the package in your project 📥

import 'package:fluttertagger/fluttertagger.dart';

Usage 🏗️

FlutterTagger(
          controller: flutterTaggerController,
          onSearch: (query, triggerCharacter) {
              //perform search
          },
          //characters that can trigger a search and the styles
          //to be applied to their tagged results in the TextField
          triggerCharacterAndStyles: const {
            '@': TextStyle(color: Colors.pinkAccent),
            '#': TextStyle(color: Colors.blueAccent),
          },
          //this will cause the onSearch callback to be invoked
          //immediately a trigger character is detected.
          //The default behaviour defers the onSearch invocation
          //until a searchable character has been entered after
          //the trigger character.
          triggerStrategy: TriggerStrategy.eager,
          overlay: SearchResultView(),
          builder: (context, textFieldKey) {
              //return a TextField and pass it `textFieldKey`
              return TextField(
                    key: textFieldKey,
                    controller: flutterTaggerController,
                    suffix: IconButton(
                      onPressed: () {
                        //get formatted text from controller
                        final text = flutterTaggerController.formattedText;

                        //perform send action...

                        FocusScope.of(context).unfocus();
                        flutterTaggerController.clear();
                      },
                    icon: const Icon(
                      Icons.send,
                      color: Colors.redAccent,
                    ),
                  ),
                );
          },
        )

Here's how trigger a search by updating the controller directly instead of typing into a keyboard:

FlutterTagger(
          controller: flutterTaggerController,
          onSearch: (query, triggerCharacter) {
              //perform search
          },
          //characters that can trigger a search and the styles
          //to be applied to their tagged results in the TextField
          triggerCharacterAndStyles: const {
            '@': TextStyle(color: Colors.pinkAccent),
            '#': TextStyle(color: Colors.blueAccent),
          },
          overlay: SearchResultView(),
          builder: (context, textFieldKey) {
              // return a TextField and pass it `textFieldKey`
              return TextField(
                    key: textFieldKey,
                    controller: flutterTaggerController,
                    suffix: IconButton(
                      onPressed: () {
                        // get formatted text from controller
                        String text = flutterTaggerController.formattedText;

                        // append a trigger character to activate the search context
                        flutterTaggerController.text = text += '#';

                        // update text selection
                        flutterTaggerController.selection = TextSelection.fromPosition(
                          TextPosition(offset: flutterTaggerController.text.length),
                        );

                        // append other characters to trigger search
                        flutterTaggerController.text = text += 'f';

                        // update text selection
                        flutterTaggerController.selection = TextSelection.fromPosition(
                          TextPosition(offset: flutterTaggerController.text.length),
                        );

                        // then call formatTags on the controller to preserve formatting
                        flutterTaggerController.formatTags();
                      },
                    icon: const Icon(
                      Icons.send,
                      color: Colors.redAccent,
                    ),
                  ),
                );
          },
        )

Explore detailed example demo here.

Demo 📷

Example demo

Contributions 🫱🏾‍🫲🏼

Feel free to contribute to this project.

If you find a bug or want a feature, but don't know how to fix/implement it, please fill an issue.
If you fixed a bug or implemented a feature, please send a pull request.

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.