Flutter implementation of sticky headers for sliver

Overview

flutter_sticky_header

A Flutter implementation of sticky headers with a sliver as a child.

Pub Donate

Screenshot

Features

  • Accepts one sliver as content.
  • Header can overlap its sliver (useful for sticky side header for example).
  • Notifies when the header scrolls outside the viewport.
  • Can scroll in any direction.
  • Supports overlapping (AppBars for example).
  • Supports not sticky headers (with sticky: false parameter).
  • Supports a controller which notifies the scroll offset of the current sticky header.

Getting started

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

dependencies:
  ...
  flutter_sticky_header:

In your library add the following import:

import 'package:flutter_sticky_header/flutter_sticky_header.dart';

For help getting started with Flutter, view the online documentation.

SliverStickyHeader

You can place one or multiple SliverStickyHeaders inside a CustomScrollView.

SliverStickyHeader(
  header: Container(
    height: 60.0,
    color: Colors.lightBlue,
    padding: EdgeInsets.symmetric(horizontal: 16.0),
    alignment: Alignment.centerLeft,
    child: Text(
      'Header #0',
      style: const TextStyle(color: Colors.white),
    ),
  ),
  sliver: SliverList(
    delegate: SliverChildBuilderDelegate(
      (context, i) => ListTile(
            leading: CircleAvatar(
              child: Text('0'),
            ),
            title: Text('List tile #$i'),
          ),
      childCount: 4,
    ),
  ),
);

SliverStickyHeader.builder

If you want to change the header layout during its scroll, you can use the SliverStickyHeader.builder constructor.

The example belows changes the opacity of the header as it scrolls off the viewport.

SliverStickyHeader.builder(
  builder: (context, state) => Container(
        height: 60.0,
        color: (state.isPinned ? Colors.pink : Colors.lightBlue)
            .withOpacity(1.0 - state.scrollPercentage),
        padding: EdgeInsets.symmetric(horizontal: 16.0),
        alignment: Alignment.centerLeft,
        child: Text(
          'Header #1',
          style: const TextStyle(color: Colors.white),
        ),
      ),
  sliver: SliverList(
    delegate: SliverChildBuilderDelegate(
      (context, i) => ListTile(
            leading: CircleAvatar(
              child: Text('0'),
            ),
            title: Text('List tile #$i'),
          ),
      childCount: 4,
    ),
  ),
);

You can find more examples in the Example project.

Sponsoring

I'm working on my packages on my free-time, but I don't have as much time as I would. If this package or any other package I created is helping you, please consider to sponsor me. By doing so, I will prioritize your issues or your pull-requests before the others.

Changelog

Please see the Changelog page to know what's recently changed.

Contributions

Feel free to contribute to this project.

If you find a bug or want a feature, but don't know how to fix/implement it, please fill an issue.
If you fixed a bug or implemented a new feature, please send a pull request.

Thanks

๐Ÿ‘ Thanks to slightfoot with it's RenderBox version (https://github.com/slightfoot/flutter_sticky_headers) which unintentionally challenged me to work in this RenderSliver version.

Issues
  • Nested SliverStickyHeader

    Nested SliverStickyHeader

    Thank you for your library, it's super useful. I have one question: Is it possible to achieve something like this:

    As you can see header with dates sticks to the screen as well as the side header with time (it is a https://github.com/google/iosched app). Example app have great section with side headers, but i tried to nest SliverStickyHeader and it doesn't work. Second Header doesn't stick to screen.

    Code

    // code from example app
    class MainScreen extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        List<Widget> slivers = new List<Widget>();
    
        // App Bar
        slivers.add(getAppBar());
    
        slivers.add( new SliverStickyHeader(
          // Tabs header
          header:_buildHeader(1, text: 'Tabs'),
          // Side header
          sliver: SliverStickyHeader(
           overlapsContent: true,
           header: _buildSideHeader(1),
           sliver: new SliverPadding(
           // other code is same, create grid
    
      }
    
      Widget getAppBar() {
        return SliverAppBar(
          expandedHeight: 60.0,
          floating: true,
          brightness: Brightness.light,
          title: Text('Main AppBar',
              style: TextStyle(color: Colors.black.withOpacity(1.0))),
          elevation: 0.0,
          centerTitle: true,
          backgroundColor: Color.fromRGBO(255, 255, 255, 1.0),
        );
      }
    
    enhancement 
    opened by bunopus 11
  • Sticky with SliverAppBar

    Sticky with SliverAppBar

    I could not manage to use sticky header with sliver app bar when pinned set to true. The sliver sticky header scrolled below sliver app bar.

    slivers.add(
          SliverAppBar(
            expandedHeight: 60.0,
            floating: true,
            pinned: true, // <-- Setting this to true make the header not sticky on scroll
            title: Text(
              'Main AppBar',
              style: TextStyle(color: Colors.black.withOpacity(1.0)),
            ),
            bottom: PreferredSize(
              preferredSize: Size.fromHeight(20.0),
              child: Text("Bottom Text"),
            ),
            elevation: 0.0,
            centerTitle: true,
          ),
        );
    
        slivers.add(_buildBuilderExample());
        int i = 0;
        slivers.addAll(_buildHeaderBuilderLists(context, i, i),
    );
    

    Thank you.

    bug 
    opened by iambudi 8
  • Support null safety

    Support null safety

    This is a request to add support for null safety to package:flutter_sticky_header. We depend on your awesome package, so would be great to have null safety enabled.

    The Dart/Flutter team already encourages publishing the migrated packages: See this blog post.

    See the migration guide for details about enabling null safety.

    opened by IchordeDionysos 6
  • SliverStickyHeaderBuilder: add isPinned parameter

    SliverStickyHeaderBuilder: add isPinned parameter

    Is it possible to add an additional paramater to the builder function? I.e. to indicate if the header is currently fixed at the top or positioned normally within the scroll view:

    For this example isPinned would be true for Header#10 and false for any other visible header.

    grafik

    enhancement 
    opened by dsparber 4
  • rtl support

    rtl support

    Please add support for right to left layouts/languages (Hebrew for example), for example, cannot change the location of the SliverStickyHeader.header to be located on the right side of the list.

    waiting for user response 
    opened by liadya 4
  • Cannot compile on Flutter 1.7

    Cannot compile on Flutter 1.7

    After upgrading my project to flutter 1.7, I get following error:

    file:///Users/rafal.wachol/.pub-cache/hosted/pub.dartlang.org/flutter_sticky_header-0.3.4/lib/src/widgets/sticky_header_layout_builder.dart:147:16: Error: The argument type 'String' can't be assigned to the parameter type 'DiagnosticsNode'.
     - 'DiagnosticsNode' is from 'package:flutter/src/foundation/diagnostics.dart' ('file:///Users/rafal.wachol/Utils/flutter/packages/flutter/lib/src/foundation/diagnostics.dart').
    Try changing the type of the parameter, or casting the argument to 'DiagnosticsNode'.
          context: context);
    

    Looks like easy fix.

    opened by charafau 3
  • Compatibility issue with pull_to_refresh

    Compatibility issue with pull_to_refresh

    First off, I just wanted to say that I really enjoy this plugin, thank you for your development effort!

    I am having a bit of an issue getting it to work correctly with another plugin titled pull_to_refresh: https://pub.dartlang.org/packages/pull_to_refresh

    It appears that the title is sticky-ing to a location that is hidden away. Quick example:

    import 'package:flutter/material.dart';
    import 'package:flutter_sticky_header/flutter_sticky_header.dart';
    import 'package:pull_to_refresh/pull_to_refresh.dart';
    
    class TestView extends StatefulWidget {
      @override
      State<StatefulWidget> createState() {
        return _State();
      }
    }
    
    class _State extends State<TestView> {
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text(
              'Playground',
            ),
          ),
          body: SafeArea(
            child: SmartRefresher(
              child: CustomScrollView(
                slivers: <Widget>[
                  SliverStickyHeader(
                    header: Container(
                      padding: EdgeInsets.only(
                        left: 12.0,
                        top: 4.0,
                        right: 12.0,
                        bottom: 4.0,
                      ),
                      color: Colors.white,
                      child: Text(
                        'Title0',
                        style: TextStyle(
                          color: Colors.grey,
                          fontSize: 14.0,
                          fontWeight: FontWeight.bold,
                        ),
                      ),
                    ),
                    sliver: SliverList(
                      delegate: SliverChildListDelegate(
                        [
                          Container(
                            height: 200.0,
                            color: Colors.red,
                          ),
                          Container(
                            height: 200.0,
                            color: Colors.blue,
                          ),
                          Container(
                            height: 200.0,
                            color: Colors.red,
                          ),
                          Container(
                            height: 200.0,
                            color: Colors.blue,
                          ),
                        ],
                      ),
                    ),
                  ),
                  SliverStickyHeader(
                    header: Container(
                      padding: EdgeInsets.only(
                        left: 12.0,
                        top: 4.0,
                        right: 12.0,
                        bottom: 4.0,
                      ),
                      color: Colors.white,
                      child: Text(
                        'Title1',
                        style: TextStyle(
                          color: Colors.grey,
                          fontSize: 14.0,
                          fontWeight: FontWeight.bold,
                        ),
                      ),
                    ),
                    sliver: SliverList(
                      delegate: SliverChildListDelegate(
                        [
                          Container(
                            height: 200.0,
                            color: Colors.red,
                          ),
                          Container(
                            height: 200.0,
                            color: Colors.blue,
                          ),
                          Container(
                            height: 200.0,
                            color: Colors.red,
                          ),
                          Container(
                            height: 200.0,
                            color: Colors.blue,
                          ),
                        ],
                      ),
                    ),
                  ),
                ],
              ),
            ),
          ),
        );
      }
    }
    

    I understand that this is not necessarily a bug with your package, I was just hoping to get some guidance.

    Thank you for your time!

    not a flutter_sticky_header bug 
    opened by pgulegin 3
  • Migrate to null-safety

    Migrate to null-safety

    This PR uses @John-Dormevil's branch https://github.com/John-Dormevil/value_layout_builder/tree/null-safety (see PR https://github.com/letsar/value_layout_builder/pull/2) for now.

    I will change this to a stable version as soon as it is merged.

    Fixes #57

    opened by ThexXTURBOXx 2
  • Listener on header sticked

    Listener on header sticked

    Is it possible to detect when a header is sticked (like using a listener of provide a callback)? I need to create the effect like in the video; I have a header for each weekday, the calendar above the listview needs to be updated based on the sticked header. I haven't figured out how to do. Thanks!

    https://user-images.githubusercontent.com/39674633/143587747-f63970e7-2e1f-4e18-acc2-fd0180ad7e22.mov

    opened by royvangeel 2
  • is there is a way to scroll to a particular header using its index or any other way?

    is there is a way to scroll to a particular header using its index or any other way?

    Thanks for this useful library.. in my use case I will group a list of matches by its dates, a few matches every day, and today's date should be in the middle of let us say 2 weeks, one week in the past and another week into the future. is there is a way to scroll to today's header using it's index?

    Thanks

    opened by ehabreda 0
  • Constructor default values assignment

    Constructor default values assignment

    Default values in constructors are to be assigned with = instead of old-style :.

    opened by jagomf 0
  • Added the possibility to have multiple slivers as child

    Added the possibility to have multiple slivers as child

    With this pr you can have multiple slivers as child what would make it possible for instance to have multiple sticky headers as child, or 2 lists.

    Also solves #62

    opened by UnderKoen 3
  • How to implement nested SliverList?

    How to implement nested SliverList?

    First I use this example from here: https://github.com/letsar/flutter_sticky_header/blob/master/example/lib/examples/mix_slivers.dart

    Instead of hard-coded _StickyHeaderList in build method: https://github.com/letsar/flutter_sticky_header/blob/ea97f5455a7eb52899a15cd9aed0b79286648963/example/lib/examples/mix_slivers.dart#L12-L35

    I want to use another ListView like:

      @override
      Widget build(BuildContext context) {
        return AppScaffold(
          title: 'List Example',
          slivers: [
            SliverAppBar(
              backgroundColor: Colors.orange,
              title: Text('SliverAppBar'),
              automaticallyImplyLeading: false,
              pinned: true,
            ),
            SliverToBoxAdapter(
              child: Container(
                height: 50,
                color: Colors.red,
              ),
            ),
            SliverList(
              delegate: SliverChildBuilderDelegate(
                (context, i) => ListTile(
                  leading: _StickyHeaderList(),
                ),
                childCount: 6,
              ),
            ),
          ],
        );
      }
    }
    

    But I get this error:

    The following assertion was thrown building _StickyHeaderList:
    A RenderRepaintBoundary expected a child of type RenderBox but received a child of type
    RenderSliverStickyHeader.
    

    How can I do that?

    opened by erfanium 0
  • localPosition in GestureDetector details is incorrect

    localPosition in GestureDetector details is incorrect

    The vertical offset of the localPosition for onTapDown, when a GestureDetector is used in the child sliver, is offset by the size of the header in the sticky header component. For example, I would expect the top right corner of the container to be (0, 0) but if the header is 40 pixels high the top right corner is actually (0, 40).

    Here's a gif, illustrating the issue: Kapture 2021-05-18 at 18 21 27

    Here is a minimal reproduction case:

    import 'package:flutter/material.dart';
    import 'package:flutter_sticky_header/flutter_sticky_header.dart';
    
    void main() {
      runApp(
        MaterialApp(
          home: Scaffold(
            appBar: AppBar(
              title: Text('EXAMPLE'),
            ),
            body: CustomScrollView(
              slivers: [
                StickyHeaderExample(),
              ],
            ),
          ),
        ),
      );
    }
    
    class StickyHeaderExample extends StatefulWidget {
      @override
      _StickyHeaderExampleState createState() => _StickyHeaderExampleState();
    }
    
    class _StickyHeaderExampleState extends State<StickyHeaderExample> {
      Offset tapPosition;
      @override
      Widget build(BuildContext context) {
        return SliverStickyHeader(
          header: SizedBox(
            height: 40,
            child: Center(child: Text('Header')),
          ),
          sliver: SliverList(
            delegate: SliverChildListDelegate(
              [
                Padding(
                  padding: const EdgeInsets.only(bottom: 10),
                  child: GestureDetector(
                    onTapDown: (details) {
                      setState(() {
                        tapPosition = details.localPosition;
                      });
                    },
                    child: Container(
                      height: 200,
                      color: Colors.lightBlue,
                      alignment: Alignment.center,
                      child: tapPosition != null
                          ? Text(
                              'dy: ${tapPosition.dy}',
                              style: TextStyle(color: Colors.white),
                            )
                          : null,
                    ),
                  ),
                )
              ],
            ),
          ),
        );
      }
    }
    
    opened by natalieeeflores 0
  • Fixing SliverStickyHeaderState cast error due to null-safety migration

    Fixing SliverStickyHeaderState cast error due to null-safety migration

    Solves #62

    @letsar please review, thanks!

    opened by amitkot 6
  • Error: type 'BoxValueConstraints<SliverStickyHeaderState?>' is not a subtype of type 'BoxValueConstraints<SliverStickyHeaderState>' in type cast

    Error: type 'BoxValueConstraints' is not a subtype of type 'BoxValueConstraints' in type cast

    Getting this error while using SliverStickyHeader:

    flutter: type 'BoxValueConstraints<SliverStickyHeaderState?>' is not a subtype of type
    flutter: 'BoxValueConstraints<SliverStickyHeaderState>' in type cast
    flutter:
    flutter: The relevant error-causing widget was:
    flutter:   SliverStickyHeader
    

    Using flutter_sticky_header: ^0.6.0.

    More log info:

    flutter: The following RenderObject was being processed when the exception was fired: _RenderValueLayoutBuilder<SliverStickyHeaderState>#4d71a relayoutBoundary=up4:
    flutter:   creator: ValueLayoutBuilder<SliverStickyHeaderState> โ† SliverStickyHeader โ† ItemsAvailabilitySection
    flutter:     โ† MultiSliver โ† ItemsByAvailability โ† SliverOffstage โ† Viewport โ† IgnorePointer-[GlobalKey#d3e0b]
    flutter:     โ† Semantics โ† Listener โ† _GestureSemantics โ†
    flutter:     RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#aaeef] โ† โ‹ฏ
    flutter:   parentData: paintOffset=Offset(0.0, -0.0) (can use size)
    flutter:   constraints: BoxConstraints(w=428.0, 0.0<=h<=Infinity)
    flutter:   size: Size(428.0, 56.0)
    flutter: This RenderObject had the following descendants (showing up to depth 5):
    flutter:     child: RenderPadding#e0f35 relayoutBoundary=up5
    flutter:       child: RenderParagraph#27526 relayoutBoundary=up6
    flutter:         text: TextSpan
    flutter: โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
    flutter: โ•โ•โ•ก EXCEPTION CAUGHT BY RENDERING LIBRARY โ•žโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
    flutter: The following _CastError was thrown during performLayout():
    flutter: type 'BoxValueConstraints<SliverStickyHeaderState?>' is not a subtype of type
    flutter: 'BoxValueConstraints<SliverStickyHeaderState>' in type cast
    flutter:
    flutter: The relevant error-causing widget was:
    flutter:   SliverStickyHeader
    flutter:   file:///xxx.dart:19:31
    flutter:
    flutter: When the exception was thrown, this was the stack:
    flutter: #0      RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1894:72)
    flutter: #1      PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:915:15)
    flutter: #2      RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1894:14)
    flutter: #3      RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:225:7)
    flutter: #4      _RenderValueLayoutBuilder.performLayout (package:value_layout_builder/src/value_layout_builder.dart:101:5)
    flutter: #5      RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
    flutter: #6      RenderSliverStickyHeader.performLayout (package:flutter_sticky_header/src/rendering/sliver_sticky_header.dart:273:19)
    flutter: #7      RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
    flutter: #8      RenderMultiSliver.layoutChild (package:sliver_tools/src/rendering/multi_sliver.dart:293:13)
    flutter: #9      RenderMultiSliver._layoutChildSequence (package:sliver_tools/src/rendering/multi_sliver.dart:155:31)
    flutter: #10     RenderMultiSliver.performLayout (package:sliver_tools/src/rendering/multi_sliver.dart:90:24)
    flutter: #11     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
    flutter: #12     RenderSliverOffstage.performLayout (package:flutter/src/rendering/proxy_sliver.dart:316:12)
    flutter: #13     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
    flutter: #14     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:512:13)
    flutter: #15     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1570:12)
    flutter: #16     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1479:20)
    flutter: #17     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1641:7)
    flutter: #18     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:884:18)
    flutter: #19     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:453:19)
    flutter: #20     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:874:13)
    flutter: #21     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
    flutter: #22     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
    flutter: #23     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
    flutter: #24     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:998:5)
    flutter: #28     _invoke (dart:ui/hooks.dart:161:10)
    flutter: #29     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:253:5)
    flutter: #30     _drawFrame (dart:ui/hooks.dart:120:31)
    flutter: (elided 3 frames from dart:async)
    
    opened by amitkot 3
  • Fixed _CastError

    Fixed _CastError

    This will fix this error: type 'BoxValueConstraints<SliverStickyHeaderState?>' is not a subtype of type 'BoxValueConstraints<SliverStickyHeaderState>' in type cast

    opened by Amir-P 1
Releases(v0.4.0)
Owner
Romain Rastel
Flutter Developer
Romain Rastel
Multi directional infinite list with Sticky headers for Flutter applications

Sticky Infinite List Infinite list with sticky headers. This package was made in order to make possible render infinite list in both directions with s

Denis Beketsky 243 Jan 11, 2022
Flutter implementation of sticky headers for sliver

flutter_sticky_header A Flutter implementation of sticky headers with a sliver as a child. Features Accepts one sliver as content. Header can overlap

Romain Rastel 675 Jan 9, 2022
Multi directional infinite list with Sticky headers for Flutter applications

Sticky Infinite List Infinite list with sticky headers. This package was made in order to make possible render infinite list in both directions with s

Denis Beketsky 243 Jan 11, 2022
Reorderable table, row, column, wrap, and sliver list that allow drag and drop of the children. https://pub.dartlang.org/packages/reorderables

** Kindly submit PR if you encounter issues and please make sure you're using stable channel releases. ** Maintaining open source software ain't easy.

Hansheng 455 Jan 15, 2022
An elastic material bottom sheet implementation for Flutter.

An elastic material bottom sheet implementation for Flutter. This is still an early preview, some behaviors can change or being removed. Every feedbac

Mattia Crovero 424 Dec 23, 2021
A Flutter implementation of slidable list item with directional slide actions.

flutter_slidable A Flutter implementation of slidable list item with directional slide actions that can be dismissed. Slidable is now a Flutter Favori

Romain Rastel 2k Jan 13, 2022
A Flutter app with firebase libraries implementation

FlutFire A Flutter project with implementation of all firebase libraries for Android and iOS both. Show some โค๏ธ and star the repo to support the proje

Pawan Kumar 612 Jan 9, 2022
An Login Page App in Flutter with MVP and SQFLITE ( SQLITE) Implementation.

Flutter SQFLITE MVP LOGIN APP A Login Page Flutter App with SQFLITE (SQLITE) and MVP implementation. Written in dart using Flutter SDK. Please don't f

Pawan Kumar 161 Nov 7, 2021
A simple flutter app with demo implementation of redux.

Flutter Redux Tutorial Redux Project is just a quick guide for implementation of redux.dart and flutter_redux . Written in dart using Flutter SDK. Ple

Pawan Kumar 45 Sep 29, 2021
Implementation of the Flux framework for Flutter

flutter_flux A Dart app architecture library with uni-directional data flow inspired by RefluxJS and Facebook's Flux. This is an experimental package

Google 368 Nov 30, 2021
Firebase + Flutter sample apps with code snippets, supported by comprehensive articles for each implementation.

FlutterFire Samples This repo is created to contain various sample apps demonstrating the integration of Firebase with Flutter. The final goal is to c

Souvik Biswas 104 Jan 6, 2022
Paper is a implementation of Flx Design System for Flutter

Paper is a implementation of Flx Design System for Flutter. Installing Add a lines like this to your pubspec.yaml. dependencies: paper: git:

Flx Team 3 Nov 21, 2021
DropdownButton, ToggleButton & CheckboxListTile implementation in Flutter as a Mobile App Development exercise.

Sort & Filter UI A new Flutter project. Getting Started This project is a starting point for a Flutter application. โฎ Preview A few resources to get y

Ehmad Saeedโšก 8 Sep 29, 2021
Flutter implementation of Figma's corner smoothing.

Figma Squircle Flutter implementation of Figma's corner smoothing. Usage Decoration The SmoothRectangleBorder can be provided to a regular ShapeDecora

Aloรฏs Deniel 57 Jan 11, 2022
a python-like bytes_io implementation for dart

bytes_io A python-like bytes_io implementation for dart A powerful helper for processing raw binary data Usage A simple usage example: import 'package

Kelly 6 Dec 21, 2021
A Gura parser implementation for Dart

Gura Dart parser This repository contains the implementation of a Gura configuration format parser for Dart, written in pure Dart. (Compliant with spe

Zack Campbell 4 Aug 1, 2021
A bugless implementation of BigDecimal in Dart based on Java's BigDecimal

big_decimal A bugless implementation of BigDecimal in Dart based on Java's BigDecimal Installation Add the following to your pubspec.yaml: dependencie

null 11 Dec 23, 2021
Simple UI design implementation of two pages.

dating_app_clone A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

null 4 Sep 21, 2021
Flutter Responsive Game of Thrones Flutter App Flutter Responsive Game of Thrones Flutter App

got_2019 A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this

Pawan Kumar 15 Nov 25, 2021
Flutter RxDart Explained - The Flutter Way Flutter RxDart Explained - The Flutter Way

rx_demo A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this

Pawan Kumar 27 Oct 13, 2021
Flutter Gallery is a resource to help developers evaluate and use Flutter

Flutter Gallery Flutter Gallery is a resource to help developers evaluate and use Flutter. It is a collection of Material Design & Cupertino widgets,

Flutter 3.3k Jan 13, 2022
File picker plugin for Flutter, compatible with both iOS & Android and desktop (go-flutter).

File Picker A package that allows you to use the native file explorer to pick single or multiple files, with extensions filtering support. Currently s

Miguel Ruivo 741 Jan 13, 2022
Plugin to access VPN service for Flutter | Flutter ็š„ VPN ๆ’ไปถ

Flutter VPN plugin This plugin help developers to access VPN service in their flutter app. ๆœฌๆ’ไปถๅธฎๅŠฉๅผ€ๅ‘่€…ๅœจ่‡ชๅทฑ็š„ๅบ”็”จๅ†…่ฐƒ็”จ VPN ๆœๅŠกใ€‚ The Android part was implemented

Xdea 215 Jan 15, 2022
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.3k Jan 16, 2022
Flutter Translate is a fully featured localization / internationalization (i18n) library for Flutter.

Flutter Translate is a fully featured localization / internationalization (i18n) library for Flutter. It lets you define translations for your content

Florin Bratan 284 Dec 21, 2021
Flutter Gender Prediction App Flutter Gender Prediction App

gender_predictor A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

Pawan Kumar 27 Nov 25, 2021
Beautiful Nike Web Design Concept With Flutter Beautiful Nike Web Design Concept With Flutter

flutter_web_nike A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

Pawan Kumar 22 Nov 18, 2021
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.3k Jan 10, 2022