All Projects → edsonbonfim → Scroll_bars

edsonbonfim / Scroll_bars

Licence: bsd-3-clause
Hide or show app bar and bottom navigation bar while scrolling.

Programming Languages

dart
5743 projects

Projects that are alternatives of or similar to Scroll bars

Flutter widgets
带你认识flutter widgets的使用。根据flutter中文网的“widget目录”进行编写
Stars: ✭ 17 (-39.29%)
Mutual labels:  widget
Essa
Embeddable SCADA for Small Applications
Stars: ✭ 7 (-75%)
Mutual labels:  widget
Tkswitchercollection
An animation switch collection
Stars: ✭ 877 (+3032.14%)
Mutual labels:  widget
Yii2 Fotorama Widget
Fotorama image gallery widget for yii2
Stars: ✭ 18 (-35.71%)
Mutual labels:  widget
Nativescript Masked Text Field
#️⃣ A NativeScript Masked Text Field widget
Stars: ✭ 24 (-14.29%)
Mutual labels:  widget
Fuckmyscroll.js
🔮 Animated scrolling to certain point or anchor
Stars: ✭ 10 (-64.29%)
Mutual labels:  scrolling
Brflabbytable
Bouncy and distorded table view cells, available on Cocoapods
Stars: ✭ 824 (+2842.86%)
Mutual labels:  scrolling
Fullpage.js
fullPage plugin by Alvaro Trigo. Create full screen pages fast and simple
Stars: ✭ 32,974 (+117664.29%)
Mutual labels:  scrolling
React Intersection Observer
React component for the Intersection <Observer /> API
Stars: ✭ 940 (+3257.14%)
Mutual labels:  scrolling
Iconswitch
🍭 Custom Android Switch widget
Stars: ✭ 874 (+3021.43%)
Mutual labels:  widget
Moon Phase Widget
Moon phase widget for website in javascript
Stars: ✭ 19 (-32.14%)
Mutual labels:  widget
Flutter graphite
Flutter widget to draw interactive direct graphs (flowcharts) of any complexity in a tile rectangular manner.
Stars: ✭ 23 (-17.86%)
Mutual labels:  widget
Dynamic widget
A Backend-Driven UI toolkit, build your dynamic UI with json, and the json format is very similar with flutter widget code.
Stars: ✭ 851 (+2939.29%)
Mutual labels:  widget
Table calendar
Highly customizable, feature-packed Flutter Calendar with gestures, animations and multiple formats
Stars: ✭ 897 (+3103.57%)
Mutual labels:  widget
React Chat Widget
Awesome chat widget for your React App
Stars: ✭ 881 (+3046.43%)
Mutual labels:  widget
React Cool Inview
😎 🖥️ React hook to monitor an element enters or leaves the viewport (or another element).
Stars: ✭ 830 (+2864.29%)
Mutual labels:  scrolling
Albinotonnina.com
source-code
Stars: ✭ 837 (+2889.29%)
Mutual labels:  scrolling
Badge
Drawable of badge.
Stars: ✭ 943 (+3267.86%)
Mutual labels:  widget
Mumble Widget
🔋 A web-based channel viewer widget to display active users on your Mumble server.
Stars: ✭ 14 (-50%)
Mutual labels:  widget
Android scroll endless
Scroll endless for Android recyclerview
Stars: ✭ 12 (-57.14%)
Mutual labels:  scrolling

ScrollBottomNavigationBar

Hide or show bottom navigation bar while scrolling.

Simple scroll Snap behavior
n1 n2

Roadmap

This is currently our roadmap, please feel free to request additions/changes.

Feature Progress
Simple scroll
Snap behavior
Pin/unpin
FAB supported
Snackbar supported
Gradient background

NOTE: Try use this package with scroll_app_bar package to a better user experience. See an example.

Usage

Getting started

Add scroll_bottom_navigation_bar package to your project. You can do this following this steps.

Basic implementation

First, you need a ScrollController instance.

final controller = ScrollController(); 

Now, you can use the ScrollBottomNavigationBar widget in a Scaffold widget, and attach ScrollController instance in your scrollable main widget.

NOTE: Showing only essencial code. See example section to a complete implementation.

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: ValueListenableBuilder<int>(
      valueListenable: controller.bottomNavigationBar.tabNotifier,
      builder: (context, tabIndex, child) => ListView.builder(
        controller: controller,
        itemBuilder: ...,
      ),
    ),
    bottomNavigationBar: ScrollBottomNavigationBar(
      controller: controller,
      items: ...,
    ),
  );
}

Snap behavior

To enable the snap behavior, you need just wrap the main scrollable widget with a Snap widget and attach controller.

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: ValueListenableBuilder<int>(
      valueListenable: controller.bottomNavigationBar.tabNotifier,
      builder: (context, tabIndex, child) => Snap(
        controller: controller.bottomNavigationBar,
        child: ListView.builder(
          controller: controller,
          itemBuilder: ...,
        ),
      ),
    ),
    bottomNavigationBar: ScrollBottomNavigationBar(
      controller: controller,
      items: ...,
    ),
  );
}

Example

See a complete example.

API Reference

// Returns the total height of the bar
controller.bottomNavigationBar.height;

// Notifier of the visible height factor of bar
controller.bottomNavigationBar.heightNotifier;

// Notifier of the pin state changes
controller.bottomNavigationBar.isPinned;

// Returns [true] if the bar is pinned or [false] if the bar is not pinned
controller.bottomNavigationBar.pinNotifier;

// Set a new pin state
controller.bottomNavigationBar.setPinState(state);

// Toogle the pin state
controller.bottomNavigationBar.tooglePinState();

// Notifier of the active page index
controller.bottomNavigationBar.tabNotifier;

// Register a closure to be called when the tab changes
controller.bottomNavigationBar.tabListener(listener);

// Set a new tab
controller.bottomNavigationBar.setTab(tabIndex);

// Discards resource
controller.bottomNavigationBar.dispose();

Change log

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please send feature requests and bugs at the issue tracker.

Credits

License

BSD 3-Clause License. Please see License File for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].