パッケージ、リポジトリ、アプリカテゴリを検索

backdrop のカバー
パッケージ詳細v0.9.1

backdrop

Dart におけるバックドロップの実装。(https://material.io/design/components/backdrop.html)

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
1.2万
いいね数
601
Pub ポイント
150

パッケージをインストール

flutter pub add backdrop

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Backdrop は、Material Design の Backdrop コンポーネントを実装する Flutter パッケージであり、メインコンテンツ領域と補助パネル(ドロワーまたはシートなど)の間でスムーズな遷移を可能にします。パララックス効果を備えたインタラクティブなバックドロップとカスタマイズ可能なアニメーションをサポートしています。Android、iOS、Web、macOS、Windows、Linux での使用を想定しており、直感的なナビゲーションとレイヤードインターフェースを通じてユーザー体験を向上させます。標準的なウィジェットパターンを使用して、Flutter アプリにスムーズに統合できます。

用途

  • スライド式サイドパネルの作成
  • パララックスを活用したインタラクティブな背景の実装
  • 応答性のあるナビゲーションドロワーの構築
  • レイヤードレイアウトによるUIの奥行きの向上
  • モバイルファーストのインターフェースコンポーネントの設計

主な機能

  • パララックススクロール効果
  • スムーズな遷移アニメーション
  • カスタマイズ可能なバックドロップ動作
  • 複数のプラットフォームをサポートしています
  • 組み込みのジェスチャー処理
  • 拡張可能なウィジェット構造

適している対象

  • モバイルアプリ開発者
  • Material Design を使用する UI/UX デザイナー
  • 階層的なナビゲーションを必要とするアプリ
  • 複雑なボトムシートを構築する開発者
  • 洗練されたユーザーインタラクションに注力するチーム

注意事項

  • Flutter のアニメーションシステムの理解が必要です
  • 低価格端末でのパフォーマンスに影響を与える可能性があります
  • ごちゃごちゃを避けるために注意深く設計する必要がある
  • 基本構成を超えるカスタマイズは限定的
  • 一般的な使用ではなく、特定のレイアウトパターンに適している

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Flutter Community: backdrop

backdrop

pub.dev ci Demo Awesome Flutter Gitter All Contributors pub points popularity likes GitHub issues GitHub milestone GitHub stars GitHub forks Gitlab stars Gitlab forks

ARCHIVE NOTE: Backdrop was based on the Material 2 Backdrop specification, which is no longer actively maintained. Material 3 does not include a Backdrop specification. As a result, this package is no longer actively developed and is limited to maintenance and critical fixes.

Backdrop implementation in flutter.

This widget is in active development. Any contribution, idea, criticism or feedback is welcomed.

Quick links

Package https://pub.dev/packages/backdrop
API Docs https://pub.dev/documentation/backdrop/latest/backdrop/backdrop-library.html
Live Demo https://fluttercommunity.github.io/backdrop/demo/#/
Git Repo https://github.com/fluttercommunity/backdrop
Issue Tracker https://github.com/fluttercommunity/backdrop/issues
Chat Room https://gitter.im/flutter-backdrop

Usage

BackdropScaffold

Use BackdropScaffold instead of the standard Scaffold in your app. A backLayer and a frontLayer have to be defined for the backdrop to work.

BackdropScaffold(
  appBar: BackdropAppBar(
    title: Text("Backdrop Example"),
    actions: <Widget>[
      BackdropToggleButton(
        icon: AnimatedIcons.list_view,
      )
    ],
  ),
  backLayer: Center(
    child: Text("Back Layer"),
  ),
  frontLayer: Center(
    child: Text("Front Layer"),
  ),
)
BackdropScaffold example
Navigation with backdrop

To use backdrop for navigation, use the provided BackdropNavigationBackLayer as backLayer.

The BackdropNavigationBackLayer contains a property items representing the list elements shown on the back layer. The front layer has to be "manually" set depending on the current index, which can be accessed with the onTap callback.

int _currentIndex = 0;
final List<Widget> _pages = [Widget1(), Widget2()];

@override
Widget build(BuildContext context) {
  return MaterialApp(
    title: 'Backdrop Demo',
    home: BackdropScaffold(
      appBar: BackdropAppBar(
        title: Text("Navigation Example"),
        actions: <Widget>[
          BackdropToggleButton(
            icon: AnimatedIcons.list_view,
          )
        ],
      ),
      stickyFrontLayer: true,
      frontLayer: _pages[_currentIndex],
      backLayer: BackdropNavigationBackLayer(
        items: [
          ListTile(title: Text("Widget 1")),
          ListTile(title: Text("Widget 2")),
        ],
        onTap: (int position) => {setState(() => _currentIndex = position)},
      ),
    ),
  );
}
BackdropNavigationScaffold example
Accessing underlying backdrop functionalities

To access backdrop related functionalities, use Backdrop.of(context) to get underlying BackdropScaffoldState.

BackdropScaffoldState exposes various properties and methods like:

  • properties
    • animationController -> AnimationController
    • scaffoldKey -> GlobalKey<ScaffoldState>
    • isBackLayerConcealed -> bool
    • isBackLayerRevealed -> bool
  • methods
    • fling()
    • concealBackLayer()
    • revealBackLayer()

Note: Backdrop is an InheritedWidget and therefore like Scaffold.of, Theme.of and MediaQuery.of, the BuildContext context passed to Backdrop.of(context) should be of a Widget that is under the BackdropScaffold in the "widget tree". In other words, Backdrop.of called inside a widget where the BackdropScaffold is initalized will not work explicitly, since the context passed is of the widget that will build BackdropScaffold therefore above BackdropScaffold. This can be solved by either making a seperate Widget where Backdrop.of needs to be used and make it the "child" of BackdropScaffold or wrap the Backdrop.of usage around Builder widget so that the "correct" context (from Builder) is passed to Backdrop.of. This answere on SO and FWotW video on Builder gives a very good idea of how and why Builder works in later case.

For more information, check out sample code in the example directory, demo app with use-cases and code for it and API references generated by pub.dev.

Contribute

Check proposal documents for v1.0 and web&desktop milestones before you begin with any contibution.

  1. You'll need a GitHub account.
  2. Fork the repository.
  3. Pick an issue to work on from issue tracker.
  4. Implement it.
  5. Send merge request.
  6. Star this project.
  7. Become a hero!!

Features and bugs

Please file feature requests and bugs at the issue tracker.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Harsh Bhikadia
Harsh Bhikadia

💻 🤔 👀 📖 🚇 🚧
Felix
Felix

💻 📖 🐛 👀 💡 🚇 🚧
Bringmos
Bringmos

🐛
Greg Spencer
Greg Spencer

🐛
Jorge A Peroza M
Jorge A Peroza M

🐛 💻
Matt Newell
Matt Newell

🐛
Daniel Borges
Daniel Borges

🐛 💻
Felix Wortmann
Felix Wortmann

💻 👀 🐛
Pierre Grimaud
Pierre Grimaud

📖
Вадим
Вадим

💻
Danial Agh
Danial Agh

🐛
PembaTamang
PembaTamang

🐛
hassan
hassan

🐛
Yaroslav Pronin
Yaroslav Pronin

🐛 💻 👀
Enikuomehin Adejuwon
Enikuomehin Adejuwon

💻
Nwachi ifeanyichukwu Victor
Nwachi ifeanyichukwu Victor

💻
mockturtl
mockturtl

💻 📖 🐛
ritar
ritar

🐛
LorenzoVianello
LorenzoVianello

🐛
Scott
Scott

💻
Sachin Dahal
Sachin Dahal

📖
Jan Hendrych
Jan Hendrych

🐛
Pascal Wild
Pascal Wild

🐛
Jens Reinemuth
Jens Reinemuth

💻
tobolski
tobolski

🐛
Mahdi Pishguy
Mahdi Pishguy

🐛

This project follows the all-contributors specification. Contributions of any kind welcome!

カテゴリー

ソースリポジトリ

このパッケージを使用しているプロジェクト