GithubHelp home page GithubHelp logo

iamsahdeep / liquid_swipe_flutter Goto Github PK

View Code? Open in Web Editor NEW
1.2K 13.0 155.0 53.36 MB

A flutter based liquid swipe

License: Apache License 2.0

Objective-C 0.05% Dart 96.96% Kotlin 0.15% Swift 1.44% HTML 1.40%
flutter flutter-plugin flutter-ui flutter-apps flutter-package flutter-widget flutter-material flutter-app

liquid_swipe_flutter's Introduction


Liquid Swipe

Pub Awesome Flutter

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

Table of contents

Getting Started

  • Add this to your pubspec.yaml

    dependencies:
    liquid_swipe: ^3.1.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 Widgets like Container. Just to provide flexibity to the developer to design its own UI 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
             )),
   );
 }

Migration

Some things to keep in mind while updating to v2.0.0 from any version.

  • v2.0.0 is migrated to null safety. See migration
  • Attribute enableSlideIcon is removed from LiquidSwipe. You can simply pass null to slideIconWidget to enable and disable it.
  • Attribute positionSlideIcon is now ranged from 0.0 to 1.0.
  • Next Reveal is there by default. If you want to disable it you might want to make changes in your fork. Create an issue I will help.

That's it ;)

Sample APK

Please download apk from Releases or Assets folder

Documentation

LiquidSwipe

Please Refer to API documentation for more details.

Property Type Description Default Value
pages List<Widget> Set Pages/Views/Containers. See complete example for usage. @required value
fullTransitionValue double Handle swipe sensitivity through it. Lower the value faster the animation 400.0
initialPage int Set initial page value, wrong position will throw exception. 0
slideIconWidget Widget Icon/Widget you want to display for swipe indication. Remember the curve will be created according to it. null
positionSlideIcon double Icon position on vertical axis. Must satisfy this condition 0.0 <= value <= 1.0 0.8
enableLoop bool Whether you want to loop through all those pages. true
liquidController LiquidController Controller to handle some runtime changes. Refer null
waveType WaveType enum Type of clipper you want to use. WaveType.liquidReveal
onPageChangeCallback Callback Triggered whenever page changes. null
currentUpdateTypeCallback Callback Triggered whenever UpdateType changes. Refer null
slidePercentCallback Callback Triggered on Swipe animation. Use carefully as its quite frequent on swipe. null
ignoreUserGestureWhileAnimating bool If you want to block gestures while swipe is still animating. See #5 false
disableUserGesture bool Disable user gesture, always. false
enableSideReveal bool Enable/Disable side reveal false
preferDragFromRevealedArea bool Disabling the drag from the whole page and allowing only from the revealed part of the screen and the icon false

LiquidController

A Controller class with some utility fields and methods.

Simple Usage :

Firstly make an Object of LiquidController and initialize it in initState()

   LiquidController liquidController;

   @override
   void initState() {
   super.initState();
   liquidController = LiquidController();
   }

Now simply add it to LiquidSwipe's Constructor

   LiquidSwipe(
        pages: pages,
        LiquidController: liquidController,
    ),

Only Rules/Limitation to its Usage is, you can't use any method in Liquid Controller before build method is being called in which LiquidSwipe is initialized. So we have to use them after LiquidSwipe is Built

  • Properties
    • currentPage - Getter to get current Page. Default value is 0.
    • isUserGestureDisabled - If somehow you want to check if gestures are disabled or not. Default value is false;
  • Methods
    • animateToPage({required int page, int duration = 600}) Animate to mentioned page within given Duration Remember the duration here is the total duration in which it will animate though all pages not the single page.
    • jumpToPage({required int page}) Jump Directly to mentioned Page index but without Animation.
    • shouldDisableGestures({required bool disable}) Use this method to disable gestures during runtime, like on certain pages using OnPageChangeCallback.

Please Refer to API documentation for more details.

Credits

Disclaimer : This project is not anyhow connected to Cuberto, but have apprised them through this issue.

Author & support

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

If you appreciate my work you can connect/endorse me on LinkedIn to keep me motivated.

Contributors โœจ

Thanks goes to these wonderful people (emoji key):


Sahdeep Singh

๐Ÿ’ป

Yasser Omar Jammeli

๐Ÿ’ป ๐Ÿ›

Mourad Brahim

๐Ÿ’ป

heshesh2010

๐Ÿ› ๐Ÿ““

Federico Tarascio

๐Ÿ’ป

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

liquid_swipe_flutter's People

Contributors

allcontributors[bot] avatar byneapp avatar edtheguy00 avatar iamsahdeep avatar jeaanlucas avatar jjclane avatar mourad-brahim avatar prayag-x avatar ricotarascio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

liquid_swipe_flutter's Issues

Reverse!

How do I turn off the reverse feature? Is there any parameter or method in this package?
I want it to stop when it comes to the last page.

By the way, i like this so much...

Request to Add Product in Start Flutter

Hello,

I am Maheshwari from team GeekyAnts.

On behalf of Start Flutter, we add open source products which we find helpful to the community & also we provide credits to author itself.

Let me know if you are interested showcase your product in our open source website.

Looking forward to hear from you.

When trying to update initalPage via setState, its not working.

I wish to add a skip button on the page. normally I would change the initialPage value but its not working.

           LiquidSwipe(
              initialPage: page,
              pages: pages,
              enableLoop: false,
              enableSlideIcon: (page != pages.length -1) ? true : false,
              fullTransitionValue: 400,
              waveType: WaveType.liquidReveal,
              slideIconWidget: SvgPicture.asset(
                "assets/icons/md-cheveron-left.svg",
                height: 20.0,
                color: slideIconColor,
              ),
              positionSlideIcon: 0.5,
              onPageChangeCallback: pageChangeCallback
         ),

call for pageChangeCallback

pageChangeCallback(int lpage) {
    print(lpage);
    setState(() {
      page = lpage;
      switch (lpage) {
        case 0:
            slideIconColor = Colors.black;
        break;
        
        case 1:
            slideIconColor = Colors.white;
        break;

        case 2:
            slideIconColor = Colors.blue;
        break;

        case 3:
            slideIconColor = Colors.red;
        break;
        
        default:
            slideIconColor = Colors.black;
      }
    });
  }

How to skip the entire slides if user wish too ...

page being built too early

Hi Sahdeep,

Thank you for an amazing package. Im having a slight issue with the rendering as you can see from the gif. I followed your example code exactly but don't seem to be able to stop the next and previous screens from rendering at the same time.

Thanks,

G

Doctor summary (to see all details, run flutter doctor -v):
[โœ“] Flutter (Channel beta, 1.22.0, on Mac OS X 10.15.6 19G2021, locale
en-GB)

[โœ“] Android toolchain - develop for Android devices (Android SDK version
29.0.3)
[โœ“] Xcode - develop for iOS and macOS (Xcode 12.0.1)
[โœ“] Chrome - develop for the web
[โœ“] Android Studio (version 3.6)
[โœ“] VS Code (version 1.49.3)
[โœ“] Connected device (4 available)

โ€ข No issues found!

import 'dart:math';

import 'package:flutter/material.dart';
import 'package:liquid_swipe/liquid_swipe.dart';
import 'package:oto/features/login/presentation/login_ui.dart';
import 'package:oto/features/onboarding/presentation/onboarding_widgets.dart';
import 'package:oto/main.dart';
import 'package:oto/shared/colors.dart';

class OnboardingNav extends StatefulWidget {
@OverRide
_OnboardingNavState createState() => _OnboardingNavState();
}

class _OnboardingNavState extends State {
int page = 0;
LiquidController liquidController;
UpdateType updateType;
List titleText;

@OverRide
void initState() {
liquidController = LiquidController();

super.initState();
}

final pages = [
Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Text(
"Welcome to Oto",
),
Image.asset(
"assets/images/logos/logo_na.png",
),
Text(
"Your personal tinnitus companion",
)
],
),
),
Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Text(
"Professional Therapy",
),
Image.asset(
"assets/images/onboarding/onboard_1.png",
),
Text(
"Discover Oto's guided therapy programme created specifically to help your tinnitus",
)
],
),
),
LoginScreen()
];

List colors = [accentColor, primaryColor, canvasColor];

@OverRide
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: [
LiquidSwipe(
enableSlideIcon: false,
enableLoop: false,
onPageChangeCallback: pageChangeCallback,
waveType: WaveType.liquidReveal,
liquidController: liquidController,
ignoreUserGestureWhileAnimating: true,
pages: pages,
),
if (page != pages.length - 1) ...[
Padding(
padding: EdgeInsets.all(20),
child: Column(
children: [
Expanded(child: SizedBox()),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: List.generate(pages.length, _buildDot),
),
],
),
),
Align(
alignment: Alignment.bottomRight,
child: Padding(
padding: const EdgeInsets.all(25.0),
child: FlatButton(
onPressed: () {
liquidController.animateToPage(
page: pages.length - 1, duration: 500);
},
child: Text("Skip to End"),
color: Colors.white.withOpacity(0.01),
),
),
),
Align(
alignment: Alignment.bottomLeft,
child: Padding(
padding: const EdgeInsets.all(25.0),
child: FlatButton(
onPressed: () {
liquidController.jumpToPage(
page: liquidController.currentPage + 1);
},
child: Text("Next"),
color: Colors.white.withOpacity(0.01),
),
),
)
]
],
));
}

Widget _buildDot(int index) {
double selectedness = Curves.easeOut.transform(
max(
0.0,
1.0 - ((page ?? 0) - index).abs(),
),
);
double zoom = 1.0 + (2.0 - 1.0) * selectedness;
return new Container(
width: 25.0,
child: new Center(
child: new Material(
color: Colors.white,
type: MaterialType.circle,
child: new Container(
width: 8.0 * zoom,
height: 8.0 * zoom,
),
),
),
);
}

pageChangeCallback(int lpage) {
setState(() {
page = lpage;
});
}
}

LiquidReveal splits my screen into components and doesn't work with a ListView

Screenshot_20200729_214605

Hello! love the package!

I was just wondering if you could help me with the issue above.

@override Widget build(BuildContext context) { final myModel = Provider.of<MyModel>(context, listen: false); return new MaterialApp( debugShowCheckedModeBanner: false, home: new Scaffold( body: LiquidSwipe( liquidController: myModel.liquidController, initialPage: myModel.page, waveType: WaveType.liquidReveal, pages: pages, fullTransitionValue: 700, enableSlideIcon: false, enableLoop: true, ), ), ); } }

After I swipe from one page to the other, I get some background changes in the shape of the LiquidReveak animation which wasn't a big issue until I tried to add a ListView and then the screenshot happened. I tried to McGyver a solution by maybe using a ScrollController and setState at all times but no luck.

I tried the circeReveal and I do not get this issue. Only on the liquidReveal.

any ideas on how I could fix it?

Liquid Swipe causes 2 rebuilds

Hello, i'm trying to implement a timer within this awesome plugin, but the problem is that when the timer finishes, liquid swipe makes the timer being called twice, but without liquid swipe, when the timer finishes, is not being called twice.

With the following code the 'Finished.' line prints two times.

Example code:

page1.dart

 Widget build(BuildContext context) {
    return SafeArea(
      child: Scaffold(
        backgroundColor: Colors.white,
        body: LiquidSwipe(
          pages: [
            Container(
              height: double.infinity,
              width: double.infinity,
              color: Colors.blue,
              child: Text('First page'),
            ),
            Container(
              height: double.infinity,
              width: double.infinity,
              color: Colors.white,
              child: CustomTimer(
                from: Duration(seconds: 5),
                to: Duration(seconds: 0),
                onFinishAction: CustomTimerAction.auto_start,
                onBuildAction: CustomTimerAction.auto_start,
                onFinish: () {
                  print('Finished.');
                },
                  builder: (CustomTimerRemainingTime remaining) {
                    return Column(
                      children: [
                        Container(
                          child: Text(
                            '${remaining.hours}:${remaining.minutes}:${remaining.seconds}',
                            style: TextStyle(
                              color: Colors.black,
                              fontSize: 30,
                              fontWeight: FontWeight.bold,
                            ),
                          ),
                        )
                      ],
                    );
                  },
              ),
            )
          ],
        ),
      ),
    );
  }
}

Any workaround?

Listview as children

Option to include ListView/GridView/PageView as children with top-down swipe gesture capabilities.

Update information on flutter pub.dev page and example

The repository and the pub dev page shows different versions of the liquid swipe package to add to the pubspec.yaml file.

pub.dev site shows
dependencies: liquid_swipe: ^1.4.3

The main readme in the gthub repo shows
dependencies: liquid_swipe: ^1.5.0-dev.1

While the example in the github repo mentions to import an even older version of the package. Following the example, I was getting an error about

No such class/definition about LiquidController

This was because the example code was written according to the latest version i.e. 1.5.0-dev.1. Kindly update all instances of this.

Disable swipe

Hello it's possible to disable the swipe and use only "animateToPage" ?

Slider on LiquidSwipe

Hi Sir, thank you for doing great job you made very nice and beautiful, I really like it, I was wishing to use in some of my project and I am doing right now.
I am in trouble I am trying to get two container in LiquidSwipe one for MP3 Player and 2nd for PlayList, I am trying to place Slider as seekbar, but I am unable to drag seekbar back or forward, its work fine by tapping but unable to drag it, even I set disableUserGesture:true still unable to drag, I need your help.

Alt Text

Thank you for time.

Slide is 0.5x wrong when running in landscape mode.

Hi! I got an issue with the liquidController. When I use it in landscape mode the center of the swipe animation is on the point between where I got my finger and the top of the screen.

Example video:
https://youtu.be/KW8fPtMRaV4

The same issue is present when we start in landscape mode without any rotation in between.

class Quiz extends StatefulWidget {
  static const routeName = "/Quiz";
  static const rotation = ScreenOrientation.landscapeOnly;


  @override
  _QuizState createState() => _QuizState();
}

class _QuizState extends State<Quiz> {

  LiquidController liquidController;
  UpdateType updateType;

  List<Widget> questions = [
    Question(text: "1",),
    Question(text: "2",),
    Question(text: "3",)
  ];

  @override
  void initState() {
    liquidController = LiquidController();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: LiquidSwipe(
                pages: questions,
                onPageChangeCallback: (int page) => {print("Page: " + page.toString())},
                waveType: WaveType.liquidReveal,
                liquidController: liquidController,
                ignoreUserGestureWhileAnimating: true,
                enableSlideIcon: true,
                fullTransitionValue: 800,
                positionSlideIcon: 0.0,
            )
    );
  }
}

Fast swiping

First of all awesome widget. Thanks for it. It goes really smooth but sometimes, I need to go back on my app and start over. This is quite usual and the next swipe will be faster (before the animation for actual page finishes).

When I go a bit faster I face some "flash" with next page and automatically it opens ok.

I'm trying exactly the example you posted here: https://github.com/iamSahdeep/liquid_swipe_flutter/tree/master/example

Add support for onFirstLaunch

First of all, amazing work, much appreciated. I'm very new to flutter, as an onboarder adding something like onFirstLaunch would be a much needed feature. Since onboarders in most apps are mostly triggered only once during initial setup.

I was able to use PreferenceManager to implement this use-case. Can you help me with transitioning to homescreen from last page of the onboarder.

It's awesome โค๏ธ

I have been using this library in a couple of projects and it always shines out. Easy to use and tweak. Also, I was checking your other projects and those are awesome too. So, a huge thanks from my side. Keep Hacking.

current page index

Hello
is there any way that I could know the current page Index ?
To be More clear I need to know if the page has been changed and what is the index of the page that changed into ?

CheckboxListTile Gesture isn't working inside the liquid swipe widget

I have a liquid swipe widget ( not builder ) that gets it's pages from List<Widgets> pages I populate it in the initState method,
everything is displaying correctly, also the CheckboxListTile is displayed right, but when I go to click on the CheckboxListTile notihng happans, it's like the gesture of it gets disabled once it's in the liquid swipe.
I check my self and the same screen/widget that in the liquid swipe outside of it and it works perfectly, but when it's inside he liquid swipe, it wont work.
This is my liquid Swipe widget:

LiquidSwipe(
                pages: pages,
                positionSlideIcon: 0.8,
                slideIconWidget: SizedBox(
                  height: 25,
                  width: 50,
                  child: Container(
                    decoration: BoxDecoration(
                        border: Border.all(color: Colors.black)
                    ),
                  ),
                ),
                onPageChangeCallback: pageChangeCallback,
                waveType: WaveType.liquidReveal,
                liquidController: _liquidController,
                ignoreUserGestureWhileAnimating: false,
                disableUserGesture: false,
              ),

1.4.2 xcode ios bug

error: /Users/hesham/.pub-cache/git/liquid_swipe_flutter-5702d1e3fbd62b7582277580a154152f773704fd/ios/Classes/LiquidSwipePlugin.h: No such file or directory (in target 'liquid_swipe' from project 'Pods')

Showing All Messages
/Users/hesham/.pub-cache/git/liquid_swipe_flutter-5702d1e3fbd62b7582277580a154152f773704fd/ios/Classes/LiquidSwipePlugin.h: No such file or directory

JumpToPage does not jump to previous pages at the last index

This is a very nice plugin, thank you! When I want to jump from right to left (from the last page to the first one),
liquidController.jumpToPage(page: 0);
the current behavior prevent me doing it, unless enableLoop is set to be true, is that designed to be so?

Better reverse animation?

First of all, great work and great package.This feels a bit like nitpicking, but are you considering a better animation for when swiping back ( from left to right ) ?.Like the same animation, but from the left side to accommodate swiping in any direction?

1.4.1 new bug

hi , i have delated pub-cache folder to insure that all old packages are updated but still get this error in last version .

i'm using android studio

Compiler message:
../../.pub-cache/hosted/pub.dartlang.org/liquid_swipe-1.4.1/lib/liquid_swipe.dart:77:17: Error: 'Page' is imported from both 'package:flutter/src/widgets/navigator.dart' and 'package:liquid_swipe/PageHelpers/page.dart'.
Page(
^^^^
../../.pub-cache/hosted/pub.dartlang.org/liquid_swipe-1.4.1/lib/liquid_swipe.dart:86:26: Error: 'Page' is imported from both 'package:flutter/src/widgets/navigator.dart' and 'package:liquid_swipe/PageHelpers/page.dart'.
child: Page(
^^^^

pageChangeCallback not working

Hi, thanks for the plugin.

Implementing the example code you provided, I noticed that the two callback functions - pageChangeCallback and currentUpdateTypeCallback do not return anything.

pageChangeCallback works only when the app loads, and it says prints page = 0 to console, but after that it does not print anything else. That is, when you swipe, the pageChangeCallback is not called.

NB: I'm trying to implement dot indicators which requires the current page index.

`liquid_swipe` does not specify a Swift version

I receive this one:


liquid_swipe does not specify a Swift version and none of the targets (Runner) integrating it have the SWIFT_VERSION attribute set. Please contact the author or set the SWIFT_VERSION attribute in at least one of the targets that integrate this pod.


flutter doctor is fine and i run flutter clean.

I think it has something to do with removing and readding the plugin, because it did work once. However, I'm new to this and am not sure how to go about that.

Can't use currentPage in build function since provider is late

We should be able to use currentPage in build function to act differently depending on the current page. However, since provider is late, this causes an exception in the first build. Here is the exception when you try to use currentPage in build()

======== Exception caught by widgets library =======================================================
The following LateError was thrown building LandingPage(dirty, dependencies: [MediaQuery], state: _LandingPageState#31358):
LateInitializationError: Field 'provider' has not been initialized.

The relevant error-causing widget was: 
  LandingPage file:///xxx/lib/main.dart:47:13
When the exception was thrown, this was the stack: 
#0      LiquidController.provider (package:liquid_swipe/PageHelpers/LiquidController.dart)
#1      _LandingPageState.build (package:xxx/view/landing/landing_view.dart:281:52)
#2      StatefulElement.build (package:flutter/src/widgets/framework.dart:4612:27)
#3      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4495:15)
#4      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4667:11)
...

inside liquid_swipe scrolling widgets are not working

this is my widget that I fill out the list of pages
animation_card.txt
here in this part of the code I inserted a scrollable element.
Flexible( child: SingleChildScrollView( child: Text( describe, style: TextStyle( fontSize: 16, ), textAlign: TextAlign.justify, overflow: TextOverflow.visible, ), ), )
information is cropped, and does not scroll ((((

add arrow icon with next background color

Screen Shot 2020-04-08 at 1 40 28 AM

how to add this wive icon to be as same as screenshot shows not that when transition finished there will be some right pixels that show the right screen color with arrow icon

Package having an issue while installing

Running "flutter pub get" in liquid_swipe...                    
Error on line 14, column 3 of pubspec.yaml: A package may not list itself as a dependency.

   โ•ท
14 โ”‚   liquid_swipe:


   โ”‚   ^^^^^^^^^^^^

   โ•ต
pub get failed (65;    โ•ต)
exit code 65```

Automaticly change page

Hey,

Thank you for this package, the animation is beautiful but it is only available from a drag gesture.

Could you implement programitcly changing the page ? It would serve so much more cases.

Scroll have a finicky feeling and bugs

Hello,
I have noticed this bug today
I tried to make the page scrollable (the container have a list view as child) and I noticed a ui bug that either feels like a duplicate so we have a view above a view or the content got sliced(cuts)
I want to ask if there is any solution to this bug or a work around ?

The IDE does not detect the package

I am just adding the package to the pubspec.yaml, then running flutter pub get and I cannot use this package at all.

[โœ“] Flutter (Channel stable, 2.0.4, on macOS 11.2.3 20D91 darwin-x64, locale en-PL)
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    โœ— Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[โœ“] Xcode - develop for iOS and macOS
[โœ“] Chrome - develop for the web
[โœ“] Android Studio (version 4.2)
[โœ“] IntelliJ IDEA Community Edition (version 2020.3.2)
[โœ“] VS Code (version 1.56.2)
[โœ“] Connected device (3 available)

Better with SizedBox

On your example, if we remove the image taking the full with we won't fill the container. I think it'd be nicer having SizedBox:

Container(
      color: Colors.pink,
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.center,
        mainAxisSize: MainAxisSize.max,
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: <Widget>[
          SizedBox(
            width: double.infinity,
            child: Column(
              children: <Widget>[
                new Text(
                  "Hi",
                  style: TextStyle(
                      fontSize: 30,
                      fontFamily: "Billy",
                      fontWeight: FontWeight.w600),
                ),
              ],
            ),
          )
        ],
      ),
    ),

I still too new with Flutter so not sure if this is the most optimal solution

onPageChangeCallback is not required

Make it required, or remove the following line:

assert(onPageChangeCallback != null),

I don't need this callback for my design, so ideally it should not be required at all.

add two arrow in left and right

please can you add two arrow to be like slider to swipe from right of left , cuz i'm using RTL and i want to show the icon on left side

type 'List<Widget>' is not a subtype of type 'List<Container>'

pages is set as List<Widget> but on the state you are expecting only List<Container>

flutter: When the exception was thrown, this was the stack:
flutter: #0      _LiquidSwipe.build (package:liquid_swipe/liquid_swipe.dart:61:21)
flutter: #1      StatefulElement.build (package:flutter/src/widgets/framework.dart:4334:27)
flutter: #2      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4223:15)
flutter: #3      Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)

Bottom overflow with custom slideIconWidget

So it seems like the implicit constraint of the parameters size property is not really clear? I'm using an additional text below the icon to make it clearer that the icon is used to reach the next page. On the iPhone simulator it seems to be too big for the slideIconWidget parameters. It's not really clear why that is the case.

My slideIconWidget:

Column(
                  children: <Widget>[
                    Icon(Icons.arrow_back_ios),
                    Padding(
                      padding: const EdgeInsets.symmetric(vertical: 8.0),
                      child: Text("Continue"),
                    )
                  ],
                )

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.