FLUTTER ECOSYSTEM

mcrovero/rubber

适用于 Flutter 的弹性材质底部表单实现。

橡胶 项目封面
Stars
563
Forks
90
最近推送(UTC)
2026年9月13日
项目状态
未归档
Mattia Crovero GitHub avatar
GITHUB User

Mattia Crovero ↗

Full stack developer @ Ujiboo Srl

Ujiboo SrlItaly, Turin官方网站 ↗
语言DartSwiftKotlinObjective-C

此仓库发布的插件

使用的依赖

依赖清单 3 项
  • flutter{"sdk":"flutter"}
  • flutter_test开发依赖{"sdk":"flutter"}
  • flutter_lints开发依赖^6.0.0

原始 README

以下为英文项目原文快照,最新内容请访问 GitHub。

展开 / 收起项目 README
https://github.com/mcrovero/rubber/raw/master/assets/rubber-logo-nopadding.jpg Awesome Flutter

An elastic material bottom sheet implementation for Flutter.

Requires Flutter 3.44 or later and Dart 3.12 or later.

This is still an early preview, some behaviors can change or being removed. Every feedback, bug report or feature request is welcome, please send it at the issue tracker

Follow the Quick Start to add it to your project. Is also available the complete example in the repository to preview the library on your device.

Common interaction options can be configured directly on the sheet:

RubberBottomSheet(
  animationController: controller,
  lowerLayer: const MyBackground(),
  upperLayer: const MySheetContent(),
  draggable: true,
  snapThreshold: 0.4,
  minFlingVelocity: 700,
  completeFlingVelocity: 5000,
  scrimColor: Colors.black54,
  onScrimTap: controller.collapse,
);

Use strict bounds when the elastic overscroll effect is not appropriate:

final controller = RubberAnimationController(
  vsync: this,
  duration: const Duration(milliseconds: 250),
  boundsBehavior: RubberAnimationBoundsBehavior.strict,
);

Use controller.addListener(...) to observe the position continuously. Status listeners report direction and boundary transitions (forward, reverse, completed, and dismissed). Pixel bounds are automatically recalculated after size and orientation changes.

https://github.com/mcrovero/rubber/raw/master/assets/video1.gif https://github.com/mcrovero/rubber/raw/master/assets/scroll1.gif