Skip to content

Presentation layer: Xamarin Forms custom components and renderers

License

Notifications You must be signed in to change notification settings

zank-stlab/Sharpnado.Presentation.Forms

 
 

Repository files navigation

Sharpnado.Presentation.Forms

Lib Version
Sharpnado.Presentation.Forms Sharpnado.Presentation.Forms
Sharpnado.Forms.HorizontalListView Sharpnado.Forms.HorizontalListView
Platform Build Status
Android Build status
iOS Build status

Xamarin Forms custom components and renderers starring:

  • Fully customizable
  • Stylable
  • Component oriented architecture
  • Layout your tabs and ViewSwitcher as you want
Bottom bar tabs Fixed tabs
BottomTabItem UnderlinedTabItem
Scrollable tabs Custom tabs
TabType.Scrollable inherit from TabItem
  • Carousel layout
  • Column count
  • Infinite loading with Paginator component
  • Snapping on first or middle element
  • Padding and item spacing
  • Handles NotifyCollectionChangedAction Add, Remove and Reset actions
  • View recycling
  • RecyclerView on Android
  • UICollectionView on iOS
  • This implementation is in fact very close in terms of philosophy and implementation to what will provide the future Xamarin CollectionView.

  • Column count (if equal to 1 then you have a classic ListView ;)
  • Infinite loading with Paginator component
  • Drag and Drop
  • Padding and item spacing
  • Handles NotifyCollectionChangedAction Add, Remove and Reset actions
  • View recycling

  • Handles error with custom messages and icons
  • Handles empty states
  • Show snackbar errors for refresh scenarios (if data is already shown)
  • Handles retry with button
  • Support Xamarin.Forms.Skeleton
  • Can override any state views with your own custom ones

It's available in 2 Nuget flavors:

  • Sharpnado.Presentation.Forms (which include several others components like the increeeedible TaskLoaderView)
  • Sharpnado.Forms.HorizontalListView (HorizontalListView only with only TapCommand and MaterialFrame)

IMPORTANT: On platform projects, call SharpnadoInitializer.Initialize() after Xamarin.Forms.Forms.Init() and before LoadApplication(new App()).

Those components are used and tested in the Silly! app: https://github.com/roubachof/Xamarin-Forms-Practices.

Open Source licenses and inspirations

About

Presentation layer: Xamarin Forms custom components and renderers

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 99.1%
  • PowerShell 0.9%