Buscar pacotes, repositórios e categorias de apps

Capa de draggable_scrollbar
Detalhes do pacotev0.1.0

draggable_scrollbar

Uma barra de rolagem que pode ser arrastada para navegação rápida em uma lista vertical. Opção adicional é mostrar um rótulo ao lado do controle deslizante com informações sobre o item atual.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
8,1 mil
Curtidas
404
Pontos Pub
140

Instalar pacote

flutter pub add draggable_scrollbar

Visão geral do pacote

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

O pacote draggable_scrollbar melhora a navegação em listas verticais no Flutter ao fornecer uma barra de rolagem arrastável com uma etiqueta opcional que exibe informações sobre o item atualmente visível. Os usuários podem rolar rapidamente por listas longas arrastando o controle da barra de rolagem, melhorando usabilidade e acessibilidade. A etiqueta é atualizada dinamicamente para refletir a posição atual, oferecendo feedback visual. Projetado para integração suave com ListView e outros widgets roláveis, ele é compatível com todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux.

Casos de uso

  • Navegação rápida por listas longas
  • Melhorando a acessibilidade em conteúdo rolável
  • Melhorando a experiência do usuário em aplicativos com grande volume de dados
  • Fornecendo feedback visual durante o rolagem
  • Personalizando o comportamento de rolagem em listas verticais

Principais recursos

  • Polegar de rolagem arrastável
  • Rótulo dinâmico exibindo informações do item atual
  • Suporte multiplataforma
  • Integração fácil com ListView
  • Aparência personalizável
  • Interação de rolagem suave

Indicado para

  • Aplicativos com listas verticais longas
  • Aplicações voltadas para acessibilidade
  • Painéis intensivos em dados
  • Interfaces de usuário que exigem rolagem intuitiva
  • Desenvolvedores que buscam uma experiência de rolagem aprimorada

Considerações

  • Pode exigir estilos adicionais para aparência ideal
  • O posicionamento da etiqueta pode precisar de ajuste em telas pequenas
  • Impacto no desempenho em listas muito grandes
  • Limitado apenas à rolagem vertical
  • Requer contexto adequado para renderização do texto de rótulo

README original

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

Flutter Community: draggable_scrollbar

Draggable Scrollbar

Pub

A scrollbar that can be dragged for quickly navigation through a vertical list. Additionaly it can show label next to scrollthumb with information about current item, for example date of picture created

Usage

You can use one of the three built-in scroll thumbs, or you can create a custom thumb for your own app!

You can play with all of these examples by running the app found in the example folder.

Example

Semicircle Thumb
DraggableScrollbar.semicircle(
  controller: myScrollController,
  child: GridView.builder(
    gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
      crossAxisCount: 5,
    ),
    controller: myScrollController,
    padding: EdgeInsets.zero,
    itemCount: 1000,
    itemBuilder: (context, index) {
      return Container(
        alignment: Alignment.center,
        margin: EdgeInsets.all(2.0),
        color: Colors.grey[300],
      );
    },
  ),
);
Arrows thumb + label
DraggableScrollbar.arrows(
  labelTextBuilder: (double offset) => Text("${offset ~/ 100}"),
  controller: myScrollController,
  child: ListView.builder(
    controller: myScrollController,
    itemCount: 1000,
    itemExtent: 100.0,
    itemBuilder: (context, index) {
      return Container(
        padding: EdgeInsets.all(8.0),
        child: Material(
          elevation: 4.0,
          borderRadius: BorderRadius.circular(4.0),
          color: Colors.purple[index % 9 * 100],
          child: Center(
            child: Text(index.toString()),
          ),
        ),
      );
    },
  ),
);
Rounded Rectangle Thumb
DraggableScrollbar.rrect(
  controller: myScrollController,
  child: ListView.builder(
    controller: myScrollController,
    itemCount: 1000,
    itemExtent: 100.0,
    itemBuilder: (context, index) {
      return Container(
        padding: EdgeInsets.all(8.0),
        child: Material(
          elevation: 4.0,
          borderRadius: BorderRadius.circular(4.0),
          color: Colors.green[index % 9 * 100],
          child: Center(
            child: Text(index.toString()),
          ),
        ),
      );
    },
  ),
);
Custom
DraggableScrollbar(
  controller: myScrollController,
  child: ListView.builder(
    controller: myScrollController,
    itemCount: 1000,
    itemExtent: 100.0,
    itemBuilder: (context, index) {
      return Container(
        padding: EdgeInsets.all(8.0),
        child: Material(
          elevation: 4.0,
          borderRadius: BorderRadius.circular(4.0),
          color: Colors.cyan[index % 9 * 100],
          child: Center(
            child: Text(index.toString()),
          ),
        ),
      );
    },
  ),
  heightScrollThumb: 48.0,
  backgroundColor: Colors.blue,
  scrollThumbBuilder: (
    Color backgroundColor,
    Animation<double> thumbAnimation,
    Animation<double> labelAnimation,
    double height, {
    Text labelText,
  }) {
    return FadeTransition(
      opacity: thumbAnimation,
      child: Container(
        height: height,
        width: 20.0,
        color: backgroundColor,
      ),
    );
  },
);

Categorias

Repositório-fonte

Projetos que usam este pacote