Buscar pacotes, repositórios e categorias de apps

Capa de anchor_scroll_controller
Detalhes do pacotev0.4.4

anchor_scroll_controller

Este pacote implementa um ScrollController que suporta âncoras. Ou seja, o AnchorScrollController permite rolar para um índice e escutar mudanças de índice durante o deslocamento feito pelo usuário.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
5,4 mil
Curtidas
48
Pontos Pub
160

Instalar pacote

flutter pub add anchor_scroll_controller

Visão geral do pacote

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

O pacote anchor_scroll_controller fornece um ScrollController que suporta ancoragem, permitindo rolagem precisa para índices específicos e escuta de mudanças de índice durante a rolagem controlada pelo usuário. Ele melhora as interações de rolagem ao permitir que desenvolvedores rastreiem e respondam ao item atualmente visível em uma lista rolável, tornando-o ideal para cenários como menus de navegação, listas infinitas ou elementos de interface sincronizados. Construído com suporte multiplataforma, funciona sem problemas em Android, iOS, Web, macOS, Windows e Linux.

Casos de uso

  • Rolagem até itens específicos da lista
  • Rastrear índice visível durante rolagem do usuário
  • Sincronizando a posição de rolagem com elementos da interface
  • Construindo menus de navegação com consciência de rolagem
  • Implementando rolagem infinita com rastreamento de âncora

Principais recursos

  • Suporte ao rolagem para índice
  • Escuta alterações de índice durante o rolagem
  • Compatibilidade multiplataforma
  • Integração fácil com widgets ListView ou Scrollable
  • Oferece rolagem baseada em âncora suave

Indicado para

  • Desenvolvedores construindo interfaces de usuário sensíveis ao rolagem
  • Aplicativos que exigem posicionamento de rolagem preciso
  • Sistemas de navegação vinculados ao estado de rolagem
  • Implementações de lista infinita ou dinâmica

Considerações

  • Requer manipulação manual da lógica de âncora
  • Pode ser necessário gerenciamento adicional de estado
  • Não adequado para rolagem estática simples
  • Impacto no desempenho com listas muito grandes
  • Limitado a conteúdo rolagem indexado

README original

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

flutter anchor_scroll_controller

This package implement a ScrollController which supports anchor. That is, AnchorScrollController supports to scroll to index and listen to index changed while scrolling by user.

Pub

Features

  • Scroll to index

    Screenshot

  • Listen to index changed

    Screenshot

Getting Started

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

dependencies:
  ...
  anchor_scroll_controller: <latest_version>

In your library add the following import:

import 'package:anchor_scroll_controller/anchor_scroll_controller.dart';

Initialize an AnchorScrollController object and use it as the ScrollController of ListView, and wrap the items in the ListView with AnchorItemWrapper

late final AnchorScrollController _scrollController;

@override
void initState() {
  super.initState();

  _scrollController = AnchorScrollController(
    onIndexChanged: (index) {
      _tabController?.animateTo(index);
    },
  );
}

@override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: Text("GeneralScrollViewWidget"),
    ),
    body: Column(
      children: [
        Expanded(
          child: ListView.builder(
            controller: _scrollController,
            itemCount: length,
            itemBuilder: (context, index) => AnchorItemWrapper(
              index: index,
              controller: _scrollController,
              child: Container(
                height: 50.0 + Random().nextInt(50),
                color: Colors.primaries[index % Colors.primaries.length],
                alignment: Alignment.center,
                child: Text(index.toString(),
                            style: const TextStyle(fontSize: 24, color: Colors.black)),
              ),
            )
          ),
        ),
        ... // omit more code
      ],
    )
  );
  
  ...
  // call AnchorScrollController.scrollToIndex() to scroll to the target index item
  _scrollController.scrollToIndex(index);
  ...

Additional notes

  • If the size of items are fixed, there is no need to wrap item with AnchorItemWrapper. Just set the fixedItemSize param of AnchorScrollController to the size of items. For example, if the height of all items are 50, then set fixedItemSize param to 50.
  • For the ScrollView which needs to support pin, wrap pinned headers with AnchorItemWrapper. See pin_scroll_view.dart for more detail.
  • If you already have a ScrollController and want to use it, wrap the ListView with AnchorScrollViewWrapper and wrap its items with AnchorItemWrapper. Meanwhile, set the scrollViewWrapper param instead of controller param to AnchorItemWrapper. See cascaded_scroll_controller.dart for more detail.

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.