Flutter plugin that allows you to showcase your features on iOS and Android. ๐Ÿ‘Œ๐Ÿ”๐ŸŽ‰

Overview

ShowCaseView

CI showcaseview

A Flutter package allows you to Showcase/Highlight your widgets step by step.

It is inspired from Fluttery's Flutter challange.

Preview

The example app running in Android

Installing

  1. Add dependency to pubspec.yaml

    Get the latest version in the 'Installing' tab on pub.dev

dependencies:
    showcaseview: <latest-version>
  1. Import the package
import 'package:showcaseview/showcaseview.dart';
  1. Adding a ShowCaseWidget widget.
ShowCaseWidget(
  builder: Builder(
    builder : (context) ()=> Somewidget()
  ),
),
  1. Adding a Showcase widget.
GlobalKey _one = GlobalKey();
GlobalKey _two = GlobalKey();
GlobalKey _three = GlobalKey();

...

Showcase(
  key: _one,
  title: 'Menu',
  description: 'Click here to see menu options',
  child: Icon(
    Icons.menu,
    color: Colors.black45,
  ),
),

Some more optional parameters

Showcase(
  key: _two,
  title: 'Profile',
  description: 'Click here to go to your Profile',
  disableAnimation: true,
  shapeBorder: CircleBorder(),
  showArrow: false,
  slideDuration: Duration(milliseconds: 1500),
  tooltipColor: Colors.blueGrey,
  child: ...,
),
  1. Using a Showcase.withWidget widget.
Showcase.withWidget(
  key: _three,
  cHeight: 80,
  cWidth: 140,
  shapeBorder: CircleBorder(),
  container: Column(
    crossAxisAlignment: CrossAxisAlignment.start,
    children: <Widget>[
      ...
    ],
  ),
  child: ...,
),
  1. Starting the ShowCase
someEvent(){
    ShowCaseWidget.startShowCase(context, [_one, _two, _three]);
}
  1. onFinish method for ShowCase
ShowCaseWidget(
  onFinish: () {
    // Your code goes here
  },
  builder: Builder(
    builder : (context) ()=> Somewidget()
  ),
),

If you want to start the ShowCaseView as soon as your UI built up then use below code.

WidgetsBinding.instance.addPostFrameCallback((_) =>
        ShowCaseWidget.startShowCase(context, [_one, _two, _three]));

How to use

Check out the example app in the example directory or the 'Example' tab on pub.dartlang.org for a more complete example.

Getting Started

This project is a starting point for a Dart package, a library module containing code that can be shared easily across multiple Flutter or Dart projects.

For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

License

Copyright ยฉ 2020, Simform Solutions
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Comments
  • Exception:BoxConstraints has NaN values

    Exception:BoxConstraints has NaN values

    Hi,My first Flutter APP is using showcaseview widget here is my code

    Row(
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                children: <Widget>[
                  Showcase.withWidget(
                    key: _myBook,
                    width: 300,
                    height: 350,
                    container: Card(
                      child: Padding(
                        padding: const EdgeInsets.fromLTRB(8, 10, 8, 10),
                        child: Text('ๅฐ่ฟช้˜…่ฏป่ฟ‡็š„็ป˜ๆœฌ้ƒฝ\nไผšๅœจ่ฟ™้‡Œ็œ‹ๅˆฐๅ“ฆ!'),
                      ),
                    ),
                    child: Icon(Icons.favorite),
       )])
    

    ,But I got some trouble,the console print some log image

    please do me a favor, thanks a lot! below is the sdk version I'm using: image

    bug wontfix 
    opened by ShengjieGeng 22
  • Weird posiiton

    Weird posiiton

    Describe the bug I try show Showcase in showCupertinoModalBottomSheet but got weird position.

    void showNameModal(BuildContext context) { showCupertinoModalBottomSheet( expand: true, context: context, backgroundColor: mainBackgroundColor, builder: (contextModal) => ShowCaseWidget(builder: Builder(builder: (context) { WidgetsBinding.instance!.addPostFrameCallback((_) { if (education.isEducationIndex == 9) ShowCaseWidget.of(context)!.startShowCase([education.ten]); }); return SingleChildScrollView( child: SafeArea( child: CustomModalBottomSheet( title: 'myCompanies/add_company/company_name'.tr, onAccept: () => navigation.back(context: context), rightWidget: Showcase( onTargetClick: () => showCasePress(context: context), onToolTipClick: () => showCasePress(context: context), disposeOnTap: true, key: education.eleven, title: 'education/saveName'.tr, description: 'education/saveNameBody'.tr, child: Icon(Icons.done, color: greenColor), ), child: Column( children: [ Showcase( onTargetClick: () => showCasePress(context: context), onToolTipClick: () => showCasePress(context: context), disposeOnTap: true, key: education.ten, title: 'education/name'.tr, description: 'education/nameShortBody'.tr, child: TextFieldBorderAll( controller: shortNameCtrl, label: 'myCompanies/add_company/short_name'.tr, ), ), SizedBox(height: 22), CustomTextArea( controller: fullNameCtrl, label: 'myCompanies/add_company/full_name'.tr, ), ], ), ), ), ); }))); }

    Simulator Screen Shot - iPhone X - 2021-09-09 at 17 45 48 Simulator Screen Shot - iPhone X - 2021-09-09 at 17 45 46

    bug 
    opened by romreed 12
  • I keep getting this error when using ShowCaseView: The method 'findAncestorStateOfType' was called on null.

    I keep getting this error when using ShowCaseView: The method 'findAncestorStateOfType' was called on null.

    Describe the bug A clear and concise description of what the bug is. I have tried different ways, but I keep getting the following errors:

    Performing hot reload... Syncing files to device iPhone 11 Pro Max... [VERBOSE-2:shell.cc(210)] Dart Unhandled Exception: NoSuchMethodError: The method 'findAncestorStateOfType' was called on null. Receiver: null Tried calling: findAncestorStateOfType(), stack trace: #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5) #1 Overlay.of (package:flutter/src/widgets/overlay.dart:258:19) #2 _OverlayBuilderState.addToOverlay (package:showcaseview/layout_overlays.dart:165:13) #3 _OverlayBuilderState.showOverlay (package:showcaseview/layout_overlays.dart:157:7) #4 _OverlayBuilderState.syncWidgetAndOverlay (package:showcaseview/layout_overlays.dart:183:7) #5 _OverlayBuilderState.reassemble. (package:showcaseview/layout_overlays.dart:137:57) #6 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1117:15) #7 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1063:9) #8 SchedulerBinding.scheduleWarmUpFrame. (package:flut<โ€ฆ>

    Additional context

    From the error message we can see something wrong with showcaseview overlay, but I can't find ways to solve it. (I have searched on google and stackoverflow, but no results.

    I closely followed the example code and also searched on other use case to apply this plugin, my code is similar like this one: https://stackoverflow.com/questions/60930636/how-can-i-use-show-case-view-in-flutter

    The plugin is working (although it's not working as I expected, that can be feature suggestions, but as least it's working as the example shows). However I always get this error complain every time I start or hot reload.

    When I remove all the code related with this plugin, I don't get any error complain, so it's definitely the plugin issue.

    How can I solve this? does any of other people get same error like i do? is it something wrong with the plugin? thank you!

    I am using the latest version of flutter and the plugin, every thing's version is the latest, I always upgrade as soon as I can.

    more-info-required 
    opened by lutang123 11
  • While using ShowCase widget, not scrolling to respective widget when its not visible.

    While using ShowCase widget, not scrolling to respective widget when its not visible.

         Showcase(
                key: beatGlobalKey,
                description: StringResource.beatShowCaseDescp,
                showcaseBackgroundColor: ColorResource.BLUE15447a,
                titleTextStyle: TextStyle(
                    color: ColorResource.WHITE16dfff,
                    fontFamily: Font.ProximaNovaBold.value),
                descTextStyle: TextStyle(
                    color: ColorResource.WHITE16dfff,
                    fontFamily: Font.ProximaNovaRegular.value),
                shapeBorder: CircleBorder(),
                showArrow: true,
                spotlightPadding: EdgeInsets.all(10),
                child: PostActionButton(
                  !this.widget.post.isLike
                      ? ImageResource.unlikedIcon
                      : ImageResource.likedIcon,
                  'Beat',
                  tapFunction: _onTapLikePost,
                  titleColor: !this.widget.post.isLike
                      ? ColorResource.BLACK2f2f2f
                      : ColorResource.BLUE16dfff,
                ),
              ),
    

    when i used the above code, showcase is not navigating to respective screen even in botttom, and overlay also not coming could anyone help with this? Thanks in adavance !

    opened by sivaram16 11
  • Feature/scroll active showcase into view

    Feature/scroll active showcase into view

    Users expect that the showcased widget is brought into view in case it is not visible (e.g. #62).

    This PR ensures that the current active Showcase is in view:

    Peek 2022-02-25 03-39

    opened by RobertHeim 10
  • AppBar is pushing down the showcases

    AppBar is pushing down the showcases

    I have the different classes loaded in this screen. From top to bottom I have the AppBar, the container where I have the showcases within a Scaffold and the bottom menu.

    When I show the showcases they are not positioned properly. Do I need to specify something else? I also used a GlobalKey from main but it still have the same margin.

    Screenshot_1633795666 Screenshot_1633795669

    class _RentsState extends State<Rents> {
      GlobalKey _one = GlobalKey();
      GlobalKey _two = GlobalKey();
    
      @override
      Widget build(BuildContext context) {
    
        return ShowCaseWidget(
          onComplete: (index, key) {
            if (index == 4)
              SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light
                  .copyWith(
                      statusBarIconBrightness: Brightness.dark,
                      statusBarColor: Colors.white));
          },
          builder: Builder(
            builder: (context) => Scaffold(
              backgroundColor: Colors.white,
              body: SafeArea(
                bottom: false,
                child: Column(
                  children: <Widget>[
                    SizedBox(
                      height: 20,
                    ),
                    Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: <Widget>[
                        Row(
                          crossAxisAlignment: CrossAxisAlignment.center,
                          children: [
                            Expanded(
                              child: Container(
                                padding: const EdgeInsets.only(left: 10, right: 8),
                                child: Container(
                                  padding: const EdgeInsets.all(12),
                                  decoration: BoxDecoration(
                                      color: Color(0xffF9F9F9),
                                      border: Border.all(
                                          color: Color(0xffF3F3F3), width: 2),
                                      borderRadius: BorderRadius.circular(8)),
                                  child: Row(
                                    children: <Widget>[
                                      Expanded(
                                        child: Row(
                                          children: <Widget>[
                                            Showcase(
                                              key: _one,
                                              description:
                                                  'Tap to see menu options',
                                              child: Icon(
                                                Icons.menu,
                                                color:
                                                    Theme.of(context).primaryColor,
                                              ),
                                            ),
                                            SizedBox(
                                              width: 10,
                                            ),
                                            Text(
                                              'Search email 2',
                                              style: TextStyle(
                                                  color: Colors.black45,
                                                  fontSize: 16,
                                                  letterSpacing: 0.4),
                                            ),
                                            Spacer(),
                                            Icon(
                                              Icons.search,
                                              color: Color(0xffADADAD),
                                            ),
                                          ],
                                        ),
                                      ),
                                    ],
                                  ),
                                ),
                              ),
                            ),
                            Showcase(
                              overlayPadding: EdgeInsets.all(5),
                              key: _two,
                              title: 'Profile',
                              description:
                                  'Tap to see profile which contains user\'s name, profile picture, mobile number and country',
                              contentPadding: EdgeInsets.all(8.0),
                              showcaseBackgroundColor:
                                  Theme.of(context).primaryColor,
                              textColor: Colors.white,
                              shapeBorder: CircleBorder(),
                              child: Container(
                                padding: EdgeInsets.all(5),
                                width: 45,
                                height: 45,
                                decoration: BoxDecoration(
                                    shape: BoxShape.circle,
                                    color: Theme.of(context).primaryColor),
                                child: Image.asset('assets/simform.png'),
                              ),
                            ),
                            SizedBox(
                              width: 12,
                            )
                          ],
                        ),
                        SizedBox(
                          height: 10,
                        ),
                        Container(
                          padding: const EdgeInsets.only(left: 16, top: 4),
                          child: Text(
                            'PRIMARY',
                            style: TextStyle(
                              color: Colors.black,
                              fontSize: 15,
                              fontWeight: FontWeight.bold,
                            ),
                          ),
                        ),
                      ],
                    ),
                    Padding(padding: EdgeInsets.only(top: 8)),
                  ],
                ),
              ),
              floatingActionButton: FloatingActionButton(
                backgroundColor: Theme.of(context).primaryColor,
                onPressed: () {
                  setState(() {
                    ShowCaseWidget.of(context)!.startShowCase([_one, _two]);
                  });
                },
                child: Icon(
                  Icons.add,
                ),
              ),
            ),
          ),
        );
      }
    
    opened by erperejildo 9
  • let user possibility to interact directly with target widget

    let user possibility to interact directly with target widget

    Is your feature request related to a problem? Please describe. No.

    Describe the solution you'd like My targeted widget has two buttons, one for accepting the other for refusing. I would be nice, if you can propagate gesture event to the target children for letting the user ability to click on those buttons and managing the showcase flow manually? Currently onTap from TargetWidget handles the event and then stops propagating.

    enhancement 
    opened by Dekhnar 8
  • Can't use Showcase on Bottom Navigation Items

    Can't use Showcase on Bottom Navigation Items

    Describe the bug Page crashes when I wrap Showcase around BottomNavigationItem icons. image

    To Reproduce Simply wrap Showcase around the Icon image

    Error The following NoSuchMethodError was thrown building IconTheme(color: Color(0x8a000000), size: 24.0): The getter 'activeWidgetIds' was called on null. Receiver: null Tried calling: activeWidgetIds

    The relevant error-causing widget was: BottomNavigationBar file:///E:/_project/flutter/upper_bunk_bro_frontend/lib/routes/tabs/HomePage.dart:92:30 When the exception was thrown, this was the stack: #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5) #1 ShowCaseWidget.activeTargetWidget (package:showcaseview/showcase_widget.dart:51:10) #2 _ShowcaseState.showOverlay (package:showcaseview/showcase.dart:171:43) #3 _ShowcaseState.didChangeDependencies (package:showcaseview/showcase.dart:164:5) #4 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4653:11)

    Additional context Android simulator.

    bug 
    opened by Zony-Zhao 8
  • Migrated null safety

    Migrated null safety

    Description

    I propose this pull request to migrate this plugin to null safety as it is the way to go now that Flutter 2 has been released.

    Here are the changes I introduced:

    • Update SDK dependency version to 2.12.0+
    • Run dart migrate on existing code to remove unsafe nulls (for the package & example)
    • Add a new version (0.2.0) to the changelog (as recommended)

    Please check everything twice!

    Testing

    • [x] Tested it manually on a Android emulator

    Related tickets

    Closes #93

    enhancement 
    opened by nilsreichardt 8
  • [Bug] getLeft and getRight return wrong result when in middle with a little offset

    [Bug] getLeft and getRight return wrong result when in middle with a little offset

    Describe the bug getLeft and getRight return wrong result when in middle with a little offset.

    Expected behavior Text in one line.

    Screenshots image

    Desktop (please complete the following information):

    • OS: windows
    bug 
    opened by SteveCruise 7
  • shapeBorder need to be more customisable

    shapeBorder need to be more customisable

    ShowCaseView is a great package, but it lacks a simple still necessary functionality that you cannot set the 'shapeBorder' to be the same shape as the widget you use it for. For example, in one case, I want the showcase shape to be rectangular with a BorderRadius of 20 in another case with BorderRadius of 40. The package offers only two options for 'shapeBorder' (circular/rectangular with a pre-defined BorderRadius). Would you please add this functionality as well?

    enhancement 
    opened by ZahraVe 7
  • Feature/tip navigation: New optional navigation options for the Showcase() widget

    Feature/tip navigation: New optional navigation options for the Showcase() widget

    New feature to allow the developer to optionally enable the following features for each Showcase() widget:

    • Navigation icons (forward / back)
    • Counter / Pager to show where in the tutorial the user is
    • End icon that allows the user to end the tutorial early

    Features are off by default. Parameters are optional to avoid breaking old instances.

    Example Photo example-showcase-with-nav

    Showcase(
        key: _showcaseSettings,
        showTipCountIndex: true,
        showForwardBackNav: true,
        showEndIcon: true,
        description: ref.read(getMachineNavigationTipsProvider).getTipContent('settings_top'),
        child: Text(AppLocalizations.of(context)!.screenTitlesSettings, style: kTextStyleHeading2),
    )
    

    A developer could extend the Showcase() widget to pass their own default values.

    opened by mdrideout 0
  • Detect user click at any place other than tool tip or target

    Detect user click at any place other than tool tip or target

    Is your feature request related to a problem? Please describe. It is not possible to detect if user clicked at any place (other than tool tip or target) on screen to skip to next showcase. Wrapping showcase widget with GestureDetector does not help.

    Describe the solution you'd like There are 2 handlers: onTargetClick and onToolTipClick to detect clicks on target and tool tip. It would be better if there is 3rd handler, for example onCllck or orAnywhereClick to detect clicks other than target and tool tip.

    Describe alternatives you've considered none.

    Additional context none.

    opened by cool2apps 0
  • showArrow not working inside withWidget;

    showArrow not working inside withWidget;

    First, I am very thankful to the developer who created this amazing widget. I am trying to add skip and next buttons inside the tooltip box but there isn't a way to implement it. Then I got a method to add skip and next button using Showcase.withWidget but by using this method showArrow is not working. How can I add an arrow on my tooltip? Here is my code,

    return Showcase.withWidget( key: key, container: Container( padding: const EdgeInsets.symmetric( vertical: 20, horizontal: 25, ), width: MediaQuery.of(context).size.width - 30, decoration: BoxDecoration( color: whiteColor, borderRadius: BorderRadius.circular(24), ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ if (title != null) ...{ Text( title, style: const TextStyle( fontSize: 16, fontWeight: FontWeight.w600, color: Colors.black, height: 2, ), ), }, if (description != null) ...{ Text( description, style: const TextStyle( fontSize: 12, fontWeight: FontWeight.w400, color: Colors.black87, height: 1.5, ), ), }, Container( margin: const EdgeInsets.only( top: 15, ), child: Row( children: [ InkWell( onTap: () { onSkip(); ShowCaseWidget.of(context).dismiss(); }, child: const Text( 'Skip', style: TextStyle( fontSize: 16, fontWeight: FontWeight.w600, color: Color.fromRGBO(179, 179, 179, 1), ), ), ), const Spacer(), InkWell( onTap: () { onNext(); ShowCaseWidget.of(context).next(); }, child: Row( children: [ Text( 'Next', style: TextStyle( fontSize: 16, fontWeight: FontWeight.w600, color: themeColorBG, ), ), Icon( Icons.keyboard_arrow_right_rounded, size: 25, color: themeColorBG, ), ], ), ), ], ), ), ], ), ), height: MediaQuery.of(context).size.height / 2, width: double.infinity, child: child, );

    Screenshot_1663249083

    opened by ShakeelBeyondvision 0
  • Smooth transitions

    Smooth transitions

    Is your feature request related to a problem? Please describe. Right now tooltips just appear out of the sudden with no smooth transitions.

    Describe the solution you'd like Would it be possible to expose a parameter for time of fade in/out or maybe any type of animation of selected Showcase Widgets? Something like shown in the video starting at 37 second: https://www.youtube.com/watch?v=3lbFdly2BqI

    enhancement 
    opened by kbudulski 0
  • please provide ShowCaseView context

    please provide ShowCaseView context

    Describe the bug When trying to start the showcase from initstate or else when trying to start the showcase on tap of floating action button getting an error of please provide ShowCaseView context

    To Reproduce Steps to reproduce the behavior:

    1. if trying to start the showCaseView from initstate

         @override
      

    void initState() { // TODO: implement initState

     WidgetsBinding.instance.addPostFrameCallback((_) =>
         ShowCaseWidget.of(context).startShowCase([_one,]),
     );
    
    super.initState();
    

    }

    OR

    1. when trying to show ShowCaseView after onPressed event FloatingActionButton( onPressed: (){

         ShowCaseWidget.of(context).startShowCase([_one,]);
      
       },
      

      ),

    2. Expected widget to highlight

                   Showcase(
                                                 description: "xyz zyx yzdyjk uhr ",
                                                 key: _one,
      
                                                 child: Row(
                                                   children: [
                                                     Text(
                                                       "Balance",
                                                       style: theme.headlineSmall?.copyWith(
                                                         fontWeight: FontWeight.w500,
                                                         fontSize: 21,
                                                       ),
                                                     ),                            
                                                   ],
                                                 ),
                                               ),
      
    3. We face an error

    Exception: Please provide ShowCaseView context

    Expected behavior Expected behavior was that the showCaseView would start and the widgets which where expected to be highlight would had been higlighted

    more-info-required 
    opened by sadhanDev 4
Releases(1.1.8)
A flutter plugin for bluebooth ble device connect and control.

flutter_blue_elves A flutter plugin witch includes platform-specific implementation code for Android and/or iOS to connect and control bluetooth ble d

PineappleOilPrince 22 Sep 18, 2022
Compare your design and current flutter layout.

pixel_perfect Put a semi-transparent image with the design over the top of the developed layout. It helps you to compare original design and current p

Kherel 42 Jun 9, 2022
Build basic Flutter layouts and widgets with the help of Row, Column, Stack, Expanded, Container, ListView, and GridView in Flutter.

Build basic Flutter layouts and widgets with the help of Row, Column, Stack, Expanded, Container, ListView, and GridView in Flutter.

Johannes Milke 28 Mar 30, 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 524 Sep 20, 2022
A Flutter package that builds a list view and notifies when the widgets are on screen.

inview_notifier_list A Flutter package that builds a ListView or CustomScrollView and notifies when the widgets are on screen within a provided area.

Vamsi Krishna 488 Sep 19, 2022
๐ŸŽฅ Movie app which is developed using flutter and powered by tmdb.

Fluttery Filmy ?? Movie app which is developed using flutter and powered by tmdb. Preview Screenshot Listing Screen Detail Screen What's next? Movies

Bhavik Makwana 197 Aug 31, 2022
๐Ÿ” A custom refresh indicator for flutter.

Liquid Pull To Refresh A beautiful and custom refresh indicator for flutter highly inspired from Ramotion Pull Down to Refresh. Table of contents Inst

Ayush Agarwal 1k Oct 1, 2022
Flutter Infinite ListView - ListView with items that can be scrolled infinitely in both directions. Maintainer: @slightfoot

Flutter Infinite ListView ListView with items that can be scrolled infinitely in both directions. Quick Usage Replace your existing ListView with Infi

Flutter Community 243 Sep 13, 2022
scroll to index with fixed/variable row height inside Flutter scrollable widget

scroll-to-index This package provides the scroll to index mechanism for fixed/variable row height for Flutter scrollable widget. Getting Started In th

Quire 401 Sep 28, 2022
Easily make Flutter apps responsive. Automatically adapt UI to different screen sizes. Responsiveness made simple. Demo: https://gallery.codelessly.com/flutterwebsites/minimal/

Responsive Framework Responsiveness made simple Responsive Framework adapts your UI to different screen sizes automatically. Create your UI once and h

Codelessly 856 Sep 24, 2022
Effortless property builder for composing maintainable Flutter UI

Niku Effortless property builder for composing maintainable Flutter UI Why Creating UI in Flutter is easy. Its declarative enables developers to contr

SaltyAom 176 Sep 15, 2022
Device Preview For Flutter

Approximate how your app looks and performs on another device. Main features Preview any device from any device Change the device orientation Dynamic

null 3 May 14, 2022
NuConta Marketplace For Flutter

NuConta Marketplace telegram-cloud-document-1-5136388785566646724.mp4 Layout based in this drible project A Flutter project made using: Clean Dart tha

David Araujo 3 Feb 11, 2022
้€‚็”จไบŽ Flutter ็š„ไบ‘็‰‡่กŒไธบ้ชŒ่ฏๆ’ไปถ

flutter_yunpian_captcha ้€‚็”จไบŽ Flutter ็š„ไบ‘็‰‡่กŒไธบ้ชŒ่ฏๆ’ไปถ ๅฑๅน•ๆˆชๅ›พ ๅฟซ้€Ÿๅผ€ๅง‹ ๅฎ‰่ฃ… ็”จๆณ• ่Žทๅ– SDK ็‰ˆๆœฌ ๅˆๅง‹ๅŒ– SDK ๅผ€ๅง‹้ชŒ่ฏ ็›ธๅ…ณ้“พๆŽฅ ่ฎธๅฏ่ฏ ๅฑๅน•ๆˆชๅ›พ ๅฟซ้€Ÿๅผ€ๅง‹ ๅฎ‰่ฃ… ๅฐ†ๆญคๆทปๅŠ ๅˆฐๅŒ…็š„ pubspec.yaml ๆ–‡ไปถไธญ๏ผš dependencies: f

LeanFlutter 5 Mar 16, 2021
BubbleShowcase is a small but power flutter package that allows you to highlight specific parts of your app to explain them to the user or to showcase your app new features.

BubbleShowcase BubbleShowcase is a small but powerful flutter package that allows you to highlight specific parts of your app (to explain them to the

Hugo Delaunay 38 Sep 21, 2022
A Flutter package allows you to Showcase/Highlight your widgets step by step.๐Ÿ‘Œ๐Ÿ”๐ŸŽ‰

ShowCaseView A Flutter package allows you to Showcase/Highlight your widgets step by step. Preview Installing Add dependency to pubspec.yaml Get the l

Simform Solutions 1.1k Sep 22, 2022
A Flutter package allows you to Showcase/Highlight your widgets step by step.

ShowCaseView A Flutter package allows you to Showcase/Highlight your widgets step by step. Preview Installing Add dependency to pubspec.yaml Get the l

kirill 5 Sep 16, 2022
Todo app codelab - A simple UI for todo app to showcase Flutter features and core concepts

Codelab Todo App A simple todo app UI for to showcase Flutter and Dart core conc

Junior Medehou 3 May 12, 2022
Flutter plugin that allows you to display multi image picker on iOS and Android. ๐Ÿ‘Œ๐Ÿ”๐ŸŽ‰

IMPORTANT: This repository has been archived and no longer mantained. As I don't have time anymore to work on the package it became very outdated. For

Radoslav Vitanov 898 Apr 29, 2021
Flutter plugin that allows you to keep the device screen awake on Android, iOS, macOS, Windows, and web.

Wakelock Wakelock is Flutter plugin that allows you to keep the device screen awake, i.e. prevent the screen from sleeping. Supported platforms Platfo

null 324 Sep 26, 2022