/Sharpnado.Presentation.Forms

Presentation layer: Xamarin Forms custom components and renderers

Primary LanguageC#The UnlicenseUnlicense

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
</tr>   
Fixed tabs Bottom bar tabs Scrollable tabs
UnderlinedTabItem BottomTabItem TabType.Scrollable
Circle button Underline all Custom tabs
TabButton UnderlineAllTab=True 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
  • Don't show activity loader for refresh scenarios (if data is already shown)
  • Handles retry with button
  • Pure Xamarin Forms view: no renderers

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