peek_and_pop 0.1.4 copy "peek_and_pop: ^0.1.4" to clipboard
peek_and_pop: ^0.1.4 copied to clipboard

discontinued
outdated

Peek & Pop implementation for Flutter based on the iOS functionality of the same name.

peek_and_pop #

Peek & Pop implementation for Flutter based on the iOS functionality of the same name.

Media #

Videos

GIFs



IMPORTANT: Read more for installation details.

Description #

As a fan of the iOS Peek & Pop functionality, I decided to implement it for Flutter as well. Please note that this is still an early version so use with care.

The package has been tested on iOS but not yet on Android as I don't have access to an Android device with Force Press capabilities. Help about this would be appreciated.

For devices that don't support Force Press, the package comes with an adaptation to Long Press however the Long Press version of this package is still under development and is not fully tested yet so consider it as a developers preview.

#

The power move of this package is what I like to call "Gesture Recognition Rerouting". Normally, when a new widget with GestureDetector or similar is pushed over an initial widget used for detecting Force Press, the user has to restart the gesture for Flutter to resume updating it. This package fixes that problem. As explained in the documentation:

///This function is called by the instantiated [PeekAndPopChild] once it is ready to be included in the Peek & Pop process. Perhaps the most
///essential functionality of this package also takes places in this function: The gesture recognition is rerouted from the  [PeekAndPopDetector]
///to the instantiated [PeekAndPopChild]. This is important for avoiding the necessity of having the user stop and restart their Force Press.
///Instead, the [PeekAndPopController] does this automatically so that the existing Force Press can continue to update even when if
///[PeekAndPopDetector] is blocked by the view which is often the case especially when using PlatformViews.

Installation #

It is easy. Don't worry.

  • Step I (Optional) For properly displaying PlatformViews, this package requires the latest Flutter master branch. Maybe it will work with some other version too but tests made with the webview_flutter seem to only properly display with the latest Flutter master branch which has improved the PlatformViews that allow better functionalities such as proper scaling and proper clipping.

    If you do not wish to use PlatformViews, you can skip this step.

    To use latest Flutter master branch, run the following command and then run the Flutter doctor. That's it, it should be fine.

    Note: Don't forget to add to your Info.plist. See webview_flutter for more info.

$ git clone -b master https://github.com/flutter/flutter.git
$ ./flutter/bin/flutter --version
  • Step II (Required) This package uses a modified version of Flutter's normal 'binding.dart'. Nothing essential is changed so do not worry about the edited file interfering with your projects. The modifications are mostly about exposing variables that are by default private. The new 'binding.dart' is otherwise identical to Flutter's normal 'binding.dart'.

    Overwrite the contents of

    (your_flutter_directory)/packages/flutter/lib/src/gestures/binding.dart

    with the contents of 'binding.dart' provided by this package. Then uncomment the parts marked "UNCOMMENT HERE" in 'peek_and_pop_controller.dart'. These parts had to be commented for cosmetic reasons as Pub considers them to be errors due to the previously explained 'binding.dart' modifications.

Notes #

I started using and learning Flutter only some weeks ago so this package might have some parts that don't make sense, that should be completely different, that could be much better, etc. Please let me know! Nicely!

Any help, suggestion or criticism is appreciated!

Cheers.





51
likes
0
pub points
41%
popularity

Publisher

verified publishercosmossoftware.coffee

Peek & Pop implementation for Flutter based on the iOS functionality of the same name.

Homepage
Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on peek_and_pop