Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev3.1.0

nested_scroll_view_plus

Um NestedScrollView aprimorado que oferece suporte a sobrescrita tanto para as visualizações de rolagem aninhadas quanto para as pais, garantindo uma experiência de rolagem sem interrupções.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
7,9 mil
Curtidas
49
Pontos Pub
150

Instalar pacote

flutter pub add nested_scroll_view_plus

Visão geral do pacote

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

Uma versão aprimorada do NestedScrollView do Flutter que fornece suporte para sobrescrita tanto para os visualizadores de rolagem aninhados quanto para os pais, garantindo uma experiência de rolagem suave e consistente em todas as plataformas. Melhora o comportamento padrão ao permitir efeitos naturais de sobrescrita em ambas as camadas, tornando-o ideal para layouts complexos com barras de aplicativos e conteúdo rolável abaixo. O pacote é ativamente mantido e compatível com Android, iOS, Web, macOS, Windows e Linux.

Casos de uso

  • Layouts complexos de barras de aplicativos
  • Conteúdo aninhado com rolagem e sobrecarga
  • Rolagem com efeitos de paralaxe
  • Interfaces de usuário responsivas com rolagem em camadas
  • Interfaces deslizantes híbridas

Principais recursos

  • Suporte a overscroll para visualizações de rolagem aninhadas e pais
  • Experiência de rolagem contínua
  • Compatibilidade multiplataforma
  • Física de rolagem aprimorada
  • Suporte para comportamentos de rolagem personalizados
  • Manutenção e atualizações ativas

Indicado para

  • Desenvolvedores construindo interfaces de usuário avançadas com rolagem
  • Aplicativos que exigem rolagem em camadas com feedback visual
  • Projetos que precisam de comportamento consistente de overscroll
  • Equipes direcionadas para múltiplas plataformas
  • Designers de interface implementando efeitos de rolagem dinâmicos

Considerações

  • Pode aumentar a complexidade para layouts de rolagem simples
  • Requer manipulação cuidadosa dos controladores de rolagem
  • Impacto potencial no desempenho com rolagens profundamente aninhadas
  • Não necessário para widgets deslizantes básicos
  • Mais adequado para casos de uso avançados em vez do NestedScrollView padrão

README original

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

NestedScrollViewPlus

pub package monthly downloads Stars

An enhanced NestedScrollView offering overscroll support for both the nested and parent scroll views, ensuring a seamless scrolling experience.

🔥 Preview

Try it online: https://flutter-nested-scroll-view-plus.vercel.app

⚡️ Get Started

Install NestedScrollViewPlus by running the following command:

flutter pub add nested_scroll_view_plus

Here’s a basic example:

import 'package:nested_scroll_view_plus/nested_scroll_view_plus.dart';

// Step 1: Replace `NestedScrollView` with `NestedScrollViewPlus`
NestedScrollViewPlus(
  headerSliverBuilder: (context, innerScrolled) => <Widget>[
    // ... insert your header sliver widgets here
  ],
  body: CustomScrollView(
    // Step 2: [🚨IMPORTANT] Set the physics of `CustomScrollView` to `AlwaysScrollableScrollPhysics`
    physics: const BouncingScrollPhysics(
      parent: AlwaysScrollableScrollPhysics(),
    ),
    slivers: <Widget>[
      // ... insert your body sliver widgets here
    ],
  ),
);

For additional examples, please visit the scroll_master repository. It includes features such as pull-to-refresh for NestedScrollView, combined scrolling for scrollview and tabview, and more.

🚗 Examples

1. Loading Indicator
NestedScrollViewPlus(
  overscrollBehavior: OverscrollBehavior.outer,
  headerSliverBuilder: (context, innerScrolled) => <Widget>[
    // Place the refresh indicator at the top of the header slivers
    CupertinoSliverRefreshControl(
      onRefresh: () async {
        // fetching data
      },
    ),
    // Add your custom AppBar or other header sliver widgets here.
  ],
  // ...
)
2. Accessing the Inner or Outer Scroll Controller

To access the inner or outer scroll controller of a NestedScrollViewPlus, you can use a GlobalKey<NestedScrollViewStatePlus> to get its state.

👉 Example
class _ExampleState extends State<Example> {
  // 1. Create a GlobalKey
  final GlobalKey<NestedScrollViewStatePlus> myKey = GlobalKey();

  @override
  Widget build(BuildContext context) {
    return NestedScrollViewPlus(
      // 2. Set the key to NestedScrollViewStatePlus
      key: myKey,
      // ...,
    );
  }

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
      // 3. Access the inner or outer scroll controller using GlobalKey<NestedScrollViewStatePlus>
      myKey.currentState!.innerController.addListener(_handleInnerScroll);
      myKey.currentState!.outerController.addListener(_handleOuterScroll);
    });
  }

  void _handleInnerScroll() {
    final innerController = myKey.currentState!.innerController;
    if (innerController.positions.length == 1) {
      print('Scrolling inner nested scrollview: ${innerController.offset}');
    }
  }

  void _handleOuterScroll() {
    final outerController = myKey.currentState!.outerController;
    if (outerController.positions.length == 1) {
      print('Scrolling outer nested scrollview: ${outerController.offset}');
    }
  }
}
3. Preserve Scroll Positions of Inner CustomScrollViews

To preserve the scroll positions of inner CustomScrollViews, you can add a PageStorageKey to the CustomScrollView widget. Here's an example:

CustomScrollView(
  key: PageStorageKey<String>('your-unique-key'),
  slivers: <Widget>[
    // ...,
  ],
),

By assigning a unique key to the CustomScrollView, Flutter's PageStorage mechanism will store and restore the scroll position of the inner CustomScrollViews, allowing you to maintain the scroll positions even when the widget tree is rebuilt.

⭕️ For Older Flutter Versions

If you are using an older version of Flutter, please follow these steps to install the appropriate branch from the old git repository.

dependencies:
  custom_nested_scroll_view:
    git:
      url: https://github.com/idootop/custom_nested_scroll_view.git
      # Choose the branch based on your local Flutter version
      ref: flutter-3.7

The different branches support the following Flutter versions:

Git branch Supported flutter versions
flutter-3.7 >=3.7.0-13.0.pre
flutter-3.4 >=3.4.0-27.0.pre <3.7.0-13.0.pre
flutter-3.4-pre >=3.4.0-17.0.pre <3.4.0-27.0.pre
flutter-3.0 >=2.12.0-4.0.pre <3.4.0-17.0.pre
flutter-2.x <2.12.0-4.0.pre

For more details, please visit the old documentation for CustomNestedScrollView.

❤️ Acknowledgements

⚖️ License

MIT License © 2024-PRESENT Del Wang

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.