zeba_academy_bottom_sheet_plus
π An advanced, customizable Flutter bottom sheet with draggable support, snap positions, smooth animations, full-screen mode, and nested scrolling.
Designed for modern apps that need flexible and powerful bottom sheet interactions.
β¨ Features
- π§² Draggable bottom sheet
- π Snap positions (e.g. 20%, 50%, 100%)
- π¬ Custom animation duration & curves
- π± Full-screen support
- π Nested scrolling support
- π― Programmatic control (expand, collapse, snap)
- π§© Clean and extensible architecture
π¦ Installation
Add this to your pubspec.yaml:
dependencies:
zeba_bottom_sheet_plus: ^0.0.1
Then run:
flutter pub get
π Usage
Basic Example
import 'package:flutter/material.dart';
import 'package:zeba_bottom_sheet_plus/zeba_bottom_sheet_plus.dart';
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: [
Center(child: Text("Main Content")),
ZebaBottomSheet(
child: ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: 20,
itemBuilder: (_, i) => ListTile(
title: Text("Item $i"),
),
),
),
],
),
);
}
}
π Advanced Usage
With Snap Controller
final controller = ZebaSnapController();
ZebaBottomSheet(
controller: controller,
snapSizes: [0.2, 0.5, 1.0],
initialSize: 0.3,
child: YourWidget(),
);
Control Programmatically
controller.expand();
controller.collapse();
controller.snapTo(0.5);
βοΈ Properties
| Property | Description | Default |
|---|---|---|
child |
Content inside the sheet | required |
snapSizes |
Snap points | [0.2, 0.5, 1.0] |
initialSize |
Initial height | 0.5 |
minSize |
Minimum height | 0.2 |
maxSize |
Maximum height | 1.0 |
controller |
Snap controller | optional |
animationDuration |
Animation duration | 300ms |
animationCurve |
Animation curve | easeInOut |
π§ͺ Testing
Run tests using:
flutter test
Includes:
- Widget rendering tests
- Drag interaction tests
- Snap behavior tests
π£ Roadmap
Glassmorphism UI supportSticky headersMulti-sheet stackingCupertino-style bottom sheetVelocity-based snapping
π€ Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.
π License
This project is licensed under the GPL License.
π¨βπ» About Me
β¨ Iβm Sufyan bin Uzayr, an open-source developer passionate about building and sharing meaningful projects. You can learn more about me and my work at https://sufyanism.com or connect with me on Linkedin: https://www.linkedin.com/in/sufyanism
π Zeba Academy
Your all-in-one learning hub!
π Explore courses and resources in coding, tech, and development at zeba.academy and code.zeba.academy. Empower yourself with practical skills through curated tutorials, real-world projects, and hands-on experience. Level up your tech game today! π»β¨
Zeba Academy is a learning platform dedicated to coding, technology, and development.
β‘ Visit our main site: https://zeba.academy β‘ Explore courses: https://code.zeba.academy β‘ YouTube: https://www.youtube.com/@zeba.academy β‘ Instagram: https://www.instagram.com/zeba.academy/
β If you like this package, donβt forget to give it a star!