Swipe menu dla ListView w Xamarin.Forms

Ostatnimi czasy zastanawiałem się jak najwygodniej byłoby zatwierdzać zadania z listy w aplikacji, którą aktualnie tworzę. Jakby nie było aplikacja ta składa się głownie z listy zadań więc wygoda tej funkcjonalności jest bardzo ważna… Przypomniałem sobie, że kiedyś używając iPhone-a zauważyłem ciekawy efekt przesunięcia pojedynczego elementu menu w lewo lub w prawo, gdzie po przesunięciu pojawiały się przyciski akcji dotyczące “swipe-niętgo” elementu. Badając dalej temat odkryłem, że ta funkcjonalność jest wspierana przez Xamarin.Forms

W XAML-u

Wszytko co potrzeba zawarte jest ViewCell.ContextActions. Dodajesz MenuItem, które posiada Click event lub jak w moim przypadku bardziej potrzebny Command. Poniżej jak to zaimplementowałem w aplikacji:

Cała magia w trzech linijkach, a efekt poniżej bardzo przyjemny:

iosSwipe

Co do Androida, efekt jest trochę gorszy, ale na chwilę obecną wystarczający. Aby osiągnąć taki sam efekt trzeba by się posłużyć kontrolkami spoza zakresu podstawowych kontrolek Xamarin.Forms lub stworzyć własną implementację. Być może w którychś iteracjach aplikacji poszukam czegoś co bardziej przypomina efekt podobny z IOS-a.

androidSwipe

 

Referencja z dokumentacji Xamarin.Forms: https://developer.xamarin.com/guides/xamarin-forms/user-interface/listview/interactivity/#Context_Actions