Renderer Base Classes and Native Controls

Every Xamarin.Forms control has an accompanying renderer for each platform that creates an instance of a native control. This article lists the renderer and native control classes that implement each Xamarin.Forms page, layout, view, and cell.

With the exception of the MapRenderer class, the platform-specific renderers can be found in the following namespaces:

  • iOS – Xamarin.Forms.Platform.iOS
  • Android – Xamarin.Forms.Platform.Android
  • Android (AppCompat) – Xamarin.Forms.Platform.Android.AppCompat
  • Android (FastRenderers) - Xamarin.Forms.Platform.Android.FastRenderers
  • Universal Windows Platform (UWP) – Xamarin.Forms.Platform.UWP

For more information about fast renderers, see Xamarin.Forms Fast Renderers.

The MapRenderer class can be found in the following namespaces:

  • iOS – Xamarin.Forms.Maps.iOS
  • Android – Xamarin.Forms.Maps.Android
  • Universal Windows Platform (UWP) – Xamarin.Forms.Maps.UWP

Note

For information about creating custom renderers for Shell applications, see Xamarin.Forms Shell Custom Renderers.

Pages

The following table lists the renderer and native control classes that implement each Xamarin.Forms Page type:

Page Renderer iOS Android Android (AppCompat) UWP
ContentPage PageRenderer UIViewController ViewGroup FrameworkElement
MasterDetailPage PhoneMasterDetailRenderer (iOS – Phone), TabletMasterDetailPageRenderer (iOS – Tablet), MasterDetailRenderer (Android), MasterDetailPageRenderer (Android AppCompat), MasterDetailPageRenderer (UWP) UIViewController (Phone), UISplitViewController (Tablet) DrawerLayout (v4) DrawerLayout (v4) FrameworkElement (Custom Control)
NavigationPage NavigationRenderer (iOS and Android), NavigationPageRenderer (Android AppCompat), NavigationPageRenderer (UWP) UIToolbar ViewGroup ViewGroup FrameworkElement (Custom Control)
TabbedPage TabbedRenderer (iOS and Android), TabbedPageRenderer (Android AppCompat), TabbedPageRenderer (UWP) UIView ViewPager ViewPager FrameworkElement (Pivot)
TemplatedPage PageRenderer UIViewController ViewGroup FrameworkElement
CarouselPage CarouselPageRenderer UIScrollView ViewPager ViewPager FrameworkElement (FlipView)

Layouts

The following table lists the renderer and native control classes that implement each Xamarin.Forms Layout type:

Layout Renderer iOS Android Android (AppCompat) UWP
ContentPresenter ViewRenderer UIView View View FrameworkElement
ContentView ViewRenderer UIView View View FrameworkElement
FlexLayout ViewRenderer UIView View View FrameworkElement
Frame FrameRenderer UIView ViewGroup CardView Border
ScrollView ScrollViewRenderer UIScrollView ScrollView ScrollView ScrollViewer
TemplatedView ViewRenderer UIView View View FrameworkElement
AbsoluteLayout ViewRenderer UIView View View FrameworkElement
Grid ViewRenderer UIView View View FrameworkElement
RelativeLayout ViewRenderer UIView View View FrameworkElement
StackLayout ViewRenderer UIView View View FrameworkElement

Views

The following table lists the renderer and native control classes that implement each Xamarin.Forms View type:

Views Renderer iOS Android Android (AppCompat) UWP
ActivityIndicator ActivityIndicatorRenderer UIActivityIndicator ProgressBar ProgressBar
BoxView BoxRenderer (iOS and Android), BoxViewRenderer (UWP) UIView ViewGroup Rectangle
Button ButtonRenderer UIButton Button AppCompatButton Button
CarouselView CarouselViewRenderer UICollectionView RecyclerView ListViewBase
CheckBox CheckBoxRenderer UIButton AppCompatCheckBox CheckBox
CollectionView CollectionViewRenderer UICollectionView RecyclerView ListViewBase
DatePicker DatePickerRenderer UITextField EditText DatePicker
Editor EditorRenderer UITextView EditText TextBox
Entry EntryRenderer UITextField EditText TextBox
Image ImageRenderer UIImageView ImageView Image
ImageButton ImageButtonRenderer UIButton AppCompatImageButton Button
IndicatorView IndicatorViewRenderer UIPageControl LinearLayout
Label LabelRenderer UILabel TextView TextBlock
ListView ListViewRenderer UITableView ListView ListView
Map MapRenderer MKMapView MapView MapControl
MediaElement MediaElementRenderer UIView VideoView MediaElement
Picker PickerRenderer UITextField EditText EditText ComboBox
RadioButton RadioButtonRenderer UIButton AppCompatRadioButton RadioButton
ProgressBar ProgressBarRenderer UIProgressView ProgressBar ProgressBar
RefreshView RefreshViewRenderer UIView SwipeRefreshLayout RefreshContainer
SearchBar SearchBarRenderer UISearchBar SearchView AutoSuggestBox
Slider SliderRenderer UISlider SeekBar Slider
Stepper StepperRenderer UIStepper LinearLayout Control
SwipeView SwipeViewRenderer UIView View SwipeControl
Switch SwitchRenderer UISwitch Switch SwitchCompat ToggleSwitch
TableView TableViewRenderer UITableView ListView ListView
TimePicker TimePickerRenderer UITextField EditText TimePicker
WebView WkWebViewRenderer (iOS), WebViewRenderer (Android and UWP) WkWebView WebView WebView

Note

The Expander control is implemented using a StackLayout, with animation. Therefore, it does not have any platform renderers.

Cells

The following table lists the renderer and native control classes that implement each Xamarin.Forms Cell type:

Cells Renderer iOS Android UWP
EntryCell EntryCellRenderer UITableViewCell with a UITextField LinearLayout with a TextView and EditText DataTemplate with a TextBox
SwitchCell SwitchCellRenderer UITableViewCell with a UISwitch Switch DataTemplate with a Grid containing a TextBlock and ToggleSwitch
TextCell TextCellRenderer UITableViewCell LinearLayout with two TextViews DataTemplate with a StackPanel containing two TextBlocks
ImageCell ImageCellRenderer UITableViewCell with a UIImage LinearLayout with two TextViews and an ImageView DataTemplate with a Grid containing an Image and two TextBlocks
ViewCell ViewCellRenderer UITableViewCell View DataTemplate with a ContentPresenter