Pakete, Repositories und App-Kategorien suchen

Cover von expandable_page_view
Paketdetailsv1.3.0

expandable_page_view

Ein PageView-Widget, das seine Höhe an die aktuell angezeigte Seite anpasst

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
173.000
Likes
596
Pub-Punkte
160

Paket installieren

flutter pub add expandable_page_view

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Das expandable_page_view-Paket verbessert den PageView von Flutter, indem es die Höhe dynamisch an den Inhalt der aktuell sichtbaren Seite anpasst. Dadurch ermöglicht es eine reibungslose, responsive Scrollfunktion, bei der jede Seite unterschiedliche Höhen haben kann, ohne das Gesamtdesign zu beeinträchtigen. Ideal für Apps mit variabler Seitenhöhe wie Formulare, Karten oder dynamische Listen. Das Paket unterstützt alle wichtigen Plattformen einschließlich Android, iOS, Web, macOS, Windows und Linux und gewährleistet ein konsistentes Verhalten über Geräte hinweg.

Anwendungsfälle

  • Dynamische Formularseiten
  • Kartenlayouts mit variabler Höhe
  • reaktiver scrollbarer Inhalt
  • Interaktive Onboarding-Bildschirme
  • inhaltsreiche Dashboards

Hauptmerkmale

  • Höhe passt sich der aktuellen Seite an
  • Glatte Übergänge zwischen Seiten
  • Plattformübergreifende Kompatibilität
  • Einfache Integration mit PageView
  • Unterstützt verschachtelte Scrollansichten

Geeignet für

  • Apps mit variabler Seitenhöhe
  • Entwickler, die reaktionsfähiges Scrollverhalten suchen
  • Projekte, die adaptive UI-Layouts erfordern
  • Mobile und Web-Anwendungen mit dynamischem Inhalt
  • UI-Designer, die flexible Scroll-Erfahrungen wünschen

Hinweise

  • Kann die Leistung bei umfangreichen Inhalten beeinträchtigen
  • Erfordert sorgfältige Behandlung der Scroll-Physik
  • Nicht ideal für Seitenlayouts mit fester Höhe
  • Eingeschränkte Anpassungsmöglichkeiten außerhalb der Höhenverstellung
  • Am besten mit vorhersehbaren Seiteninhaltsgrößen verwenden

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

expandable_page_view

A PageView widget adjusting its height to currently displayed page. It accepts the same parameters as classic PageView.

Horizontal Vertical

Getting Started

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

dependencies:
  ...
  expandable_page_view: ^1.0.17

Import it:

import 'package:expandable_page_view/expandable_page_view.dart';

Usage Examples

Fixed Expandable Page View

In order to create a fixed page view just pass a list of widgets to children parameter:

ExpandablePageView(
  children: [
     ExamplePage(Colors.blue, "1", 100),
     ExamplePage(Colors.green, "2", 200),
     ExamplePage(Colors.red, "3", 300),
  ],
),
Dynamically built Expandable Page View

If You have multiple pages to display, and You want to build them dynamically while scrolling, use .builder constructor and pass itemCount and itemBuilder parameters:

ExpandablePageView.builder(
  itemCount: 3,
  itemBuilder: (context, index) {
    return ExamplePage(Colors.blue, index.toString(), (index + 1) * 100.0);
  },
),
Loop Mode

To create an infinitely scrolling page view, set loop: true:

ExpandablePageView(
  loop: true,
  children: [
    ExamplePage(Colors.blue, "1", 100),
    ExamplePage(Colors.green, "2", 200),
    ExamplePage(Colors.red, "3", 300),
  ],
),
Programmatic Control in Loop Mode

To programmatically navigate pages in loop mode (e.g., for auto-play carousels or custom indicators), use ExpandablePageController:

final controller = ExpandablePageController(itemCount: 3);

ExpandablePageView(
  controller: controller,
  loop: true,
  children: [
    ExamplePage(Colors.blue, "1", 100),
    ExamplePage(Colors.green, "2", 200),
    ExamplePage(Colors.red, "3", 300),
  ],
),

// Navigate programmatically
controller.jumpToPage(2);
controller.animateToPage(0, duration: Duration(milliseconds: 300), curve: Curves.ease);

// Read current page
print(controller.page);     // e.g., 1.5 (fractional during scroll)
print(controller.realPage); // e.g., 1 (rounded)

Note: ExpandablePageController uses shortest-path navigation — animating from page 0 to the last page will scroll backward (1 step) rather than forward through all pages.

Check out example project to play with ExpandablePageView.

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden