liquid_swipe 1.3.0

  • Readme
  • Changelog
  • Example
  • Installing
  • 92


Logo Liquid Swipe

Pub Awesome Flutter

This repository contains the Liquid Swipe source code. Liquid swipe is the revealing clipper to bring off amazing liquid like swipe to stacked Container and inspired by Cuberto's liquid swipe and IntroViews.

Sample APK #

Download sample apk as shown in example from releases.

Get it from Github Releases

Getting Started #

  • Add this to your pubspec.yaml

    dependencies:
    liquid_swipe: ^1.3.0
    
    
  • Get the package from Pub:

    flutter packages get
    
  • Import it in your file

    import 'package:liquid_swipe/liquid_swipe.dart';
    

Usage #

  • Liquid Swipe just requires the list of containers. Just to provide flexibity to the developer to design its own view through it.
 final pages = [
    Container(...),
    Container(...),
    Container(...),
  ];
  • Now just pass these pages to LiquidSwipe widget.
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: Builder(
          builder: (context) =>
              LiquidSwipe(
                  pages: pages
              )),
    );
  }

Attributes #

AttributeDatatypeDescriptionDefault ValueComments
pagesList<Container>Set the Pages/ views/ ContainersNullA Page can contain anything, look for an example
fullTransitionValuedoubleSets the scroll distance or sensitivity for a complete swipe.400.0This transition value can be used to increase or decrease the sensitivity of the swipe. 100.0 would make swipe really fast with even a bit of drag
initialPageintSet the initial Page0Should not be >= no.of pages or smaller than 0
enableSlideIconboolUsed to enable Slide icon to the right for where the wave would originatefalseGives a ios style arrow to right side of the screen. Might include modification to it soon.
slideIconWidgetWidgetCreate your own icon and add hereIcon(Icons.arrow_back_ios)You can use icons from Icons package. Thanks to PR #10
positionSlideIcondoublePosition your icon in y-axis at right side of the screen0.54Range from -1 to 1, -1 represents extreme top and 1 represent extreme bottom. Soon add x-axis position, if required!
enableLoopboolEnable or disable pages recurrence.trueIf you dont want to make pages to be in the loop, use this attribute.
waveTypeWaveTypeSelect the type of reveal you want.WaveType.liquidRevealYou can use circularReveal, more coming soon. Import Helpers.dart file if Autoimport doesn't work.
onPageChangeCallbackCallBackPass your method as a callback, it will return a pageNo.Nonesee Example
currentUpdateTypeCallbackCallBacksame Callback but returns an UpdateTypeNonesee Example

Contributors #

Thanks to all these wonderful people and everyone that created issues. (emoji key):

mourad-brahim
Mourad

💻
YasserOJ
YasserOJ

🐛💻
JJCLane
Jordon

🖋

This project follows the all-contributors specification. Contributions of any kind welcome!

Credits #

Author & support

This project is created by Sahdeep Singh but with lots of support and help. See the Credits.

#ChangeLog

1.3.0 #

1.2.0 #

1.1.0 #

1.0.2 #

  • Minor spell changes

1.0.1 #

  • Initialized

example/README.md

liquid_swipe_example #

Demonstrates how to use the liquid_swipe plugin.

Usage #

  • Add this to your pubspec.yaml

    dependencies:
    liquid_swipe: ^1.1.0
    
    
  • Get package from Pub:

    flutter packages get
    
  • Import it in your file

    import 'package:liquid_swipe/liquid_swipe.dart';
    

Example #

  • First, create a list of Containers.
 final pages = [
    Container(
      color: Colors.pink,
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.center,
        mainAxisSize: MainAxisSize.max,
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: <Widget>[
          Image.asset(
            'assets/1.png',
            fit: BoxFit.cover,
          ),
          Padding(padding: const EdgeInsets.all(20.0)),
          Column(
            children: <Widget>[
              new Text(
                "Hi",
                style: TextStyle(
                    fontSize: 30,
                    fontFamily: "Billy",
                    fontWeight: FontWeight.w600),
              ),
              new Text(
                "It's Me",
                style: TextStyle(
                    fontSize: 30,
                    fontFamily: "Billy",
                    fontWeight: FontWeight.w600),
              ),
              new Text(
                "Sahdeep",
                style: TextStyle(
                    fontSize: 30,
                    fontFamily: "Billy",
                    fontWeight: FontWeight.w600),
              ),
            ],
          )
        ],
      ),
    ),
    Container(
      color: Colors.deepPurpleAccent,
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.center,
        mainAxisSize: MainAxisSize.max,
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: <Widget>[
          Image.asset(
            'assets/1.png',
            fit: BoxFit.cover,
          ),
          Padding(padding: const EdgeInsets.all(20.0)),
          Column(
            children: <Widget>[
              new Text(
                "Take a",
                style: TextStyle(
                    fontSize: 30,
                    fontFamily: "Billy",
                    fontWeight: FontWeight.w600),
              ),
              new Text(
                "look at",
                style: TextStyle(
                    fontSize: 30,
                    fontFamily: "Billy",
                    fontWeight: FontWeight.w600),
              ),
              new Text(
                "Liquid Swipe",
                style: TextStyle(
                    fontSize: 30,
                    fontFamily: "Billy",
                    fontWeight: FontWeight.w600),
              ),
            ],
          )
        ],
      ),
    ),
    Container(
      color: Colors.greenAccent,
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.center,
        mainAxisSize: MainAxisSize.max,
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: <Widget>[
          Image.asset(
            'assets/1.png',
            fit: BoxFit.cover,
          ),
          Padding(padding: const EdgeInsets.all(20.0)),
          Column(
            children: <Widget>[
              new Text(
                "Liked?",
                style: TextStyle(
                    fontSize: 30,
                    fontFamily: "Billy",
                    fontWeight: FontWeight.w600),
              ),
              new Text(
                "Fork!",
                style: TextStyle(
                    fontSize: 30,
                    fontFamily: "Billy",
                    fontWeight: FontWeight.w600),
              ),
              new Text(
                "Give Star!",
                style: TextStyle(
                    fontSize: 30,
                    fontFamily: "Billy",
                    fontWeight: FontWeight.w600),
              ),
            ],
          )
        ],
      ),
    ),
  ];
  • Second, just pass it to Liquid Swipe Widget.
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
        home: new Scaffold(
            body: LiquidSwipe(
              pages: pages,
              fullTransitionValue: 500,
              enableSlideIcon: true,
            )));
  }
  • Remember pages can only be containers.
  • More Examples might come soon.

Getting Started #

This project is a starting point for a Flutter application.

A few resources to get you started if this is your first Flutter project:

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

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  liquid_swipe: ^1.3.0

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:liquid_swipe/liquid_swipe.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
84
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
92
Learn more about scoring.

We analyzed this package on Oct 23, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.5.1
  • pana: 0.12.21
  • Flutter: 1.9.1+hotfix.4

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Health suggestions

Format lib/Animation_Gesture/animated_page_dragger.dart.

Run flutter format to format lib/Animation_Gesture/animated_page_dragger.dart.

Format lib/Animation_Gesture/page_dragger.dart.

Run flutter format to format lib/Animation_Gesture/page_dragger.dart.

Format lib/Animation_Gesture/page_reveal.dart.

Run flutter format to format lib/Animation_Gesture/page_reveal.dart.

Fix additional 3 files with analysis or formatting issues.

Additional issues in the following files:

  • lib/Clippers/WaveLayer.dart (Run flutter format to format lib/Clippers/WaveLayer.dart.)
  • lib/Constants/Helpers.dart (Run flutter format to format lib/Constants/Helpers.dart.)
  • lib/liquid_swipe.dart (Run flutter format to format lib/liquid_swipe.dart.)

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.11 1.14.12
meta 1.1.7
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
flutter_test