Skip to content

Releases: roubachof/Sharpnado.CollectionView

Fixes one memory leak in iOS

26 Jan 08:30
Compare
Choose a tag to compare

iOS memory leak fix thanks to Adam

17 Jan 08:45
Compare
Choose a tag to compare

.net 7 + leaks + update layout command

15 Jan 11:16
Compare
Choose a tag to compare
  • Update to .net7
  • PR #102
  • PR #111
  • Adds a UpdateLayout Command

Force the layout of the collection view to be updated.
Useful if you changed a property that should impact the layout but the layout is not updated.

CollectionView.Maui

12 Dec 08:38
f9f0efd
Compare
Choose a tag to compare

First release of the MAUI version of the CollectionView \o/

Fixes

Bindable ColumnCount and ScrollTo method

10 Mar 17:49
Compare
Choose a tag to compare

And some fixes including #47

Full Changelog: v2.0.0...v2.1.0

CollectionView 2.0 is reborn with header/footer/grouping

26 Oct 11:06
15e2521
Compare
Choose a tag to compare

Version 2.0 breaking changes: CollectionView

HorizontalListView has finally been renamed CollectionView \o/.

All references to HorizontalList has been renamed to Collection, including:

  • namespaces
  • filename
  • class names
  • HorizontalListViewLayout => CollectionViewLayout
  • ListLayout => CollectionLayout

Header/Footer implementation thanks to SizedDataTemplate

header_android

Fixes

Drag and drop directions

23 Jun 10:30
Compare
Choose a tag to compare

DragAndDropTrigger and DragAndDropDirection

Since 1.8.2, you can now choose if you want to begin the drag and drop with a Pan gesture or a LongPress.

  • DragAndDropTrigger="Pan"
  • DragAndDropTrigger="LongTap"

You can also restrict the drag movement to a given direction:

  • For the horizontal layout: DragAndDropDirection = HorizontalOnly
  • For the vertical layout: DragAndDropDirection = VerticalOnly

It will give a better more precise drag experience, more precise.

Fixes:

  • #27: DragAndDropInfo provides incorrect information for moved item
  • #26: ItemsSource does not notice changes to underlying ObservableCollection

EnableDragAndDrop at runtime with custom animations !

25 Jan 16:31
2651d56
Compare
Choose a tag to compare

NEW

  • EnableDragAndDrop is now a bindable property so drag and drop can be enabled and disabled at runtime
  • You can specify an animation for the drag and drop mode with the DragAndDropEnabledAnimationAsync property
  • You can decide to start the drag without long press on iOS thanks to the iOS specific property iOSDragAndDropOnPanGesture to true

Example

            HorizontalListView.DragAndDropEnabledAnimationAsync = async (viewCell, token) =>
            {
                while (!token.IsCancellationRequested)
                {
                    await viewCell.View.RotateTo(8);
                    await viewCell.View.RotateTo(-8);
                }

                await viewCell.View.RotateTo(0);
            };

enable_drag

Fixes

#17

Reveal animations and DragAndDropInfo

18 Nov 14:29
cc7b944
Compare
Choose a tag to compare

Version 1.8 breaking change

Namespace changed from Sharpnado.Presentation.Forms.HorizontalListView to Sharpnado.HorizontalListView.

HorizontalListView, like MaterialFrame, Tabs and Shadows, now uses the same xml namespace: http://sharpnado.com.

Because of how works xaml compilation, you need to add code in your App.xaml.cs referencing the sharpnado assembly:

public App()
{
    InitializeComponent();

    Sharpnado.HorizontalListView.Initializer.Initialize(true, false);
    ...
}

Reveal animations

Contributor: original idea from @jmmortega.

You can set custom animations on cells that will be triggered when a cell appears for the first time.

Properties for reveal animations

public Func<ViewCell, Task> PreRevealAnimationAsync { get; set; }

public Func<ViewCell, Task> RevealAnimationAsync { get; set; }

public Func<ViewCell, Task> PostRevealAnimationAsync { get; set; }

see docs for example.

DragAndDropInfo

The DragAndDropStartCommand and DragAndDropEndedCommand commands will now pass as argument a DragAndDropInfo object:

public class DragAndDropInfo
{
    public int To { get; }

    public int From { get; }

    public object Content { get; }
}

Contributor: Implemented by @jmmortega.