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 | |
FlyoutPage |
PhoneFlyoutPageRenderer (iOS – Phone), TabletFlyoutPageRenderer (iOS – Tablet), MasterDetailRenderer (Android), FlyoutPageRenderer (Android AppCompat), FlyoutPageRenderer (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 | |
Ellipse |
EllipseRenderer | CALayer | View | Ellipse | |
Entry |
EntryRenderer | UITextField | EditText | TextBox | |
Image |
ImageRenderer | UIImageView | ImageView | Image | |
ImageButton |
ImageButtonRenderer | UIButton | AppCompatImageButton | Button | |
IndicatorView |
IndicatorViewRenderer | UIPageControl | LinearLayout | ||
Label |
LabelRenderer | UILabel | TextView | TextBlock | |
Line |
LineRenderer | CALayer | View | Line | |
ListView |
ListViewRenderer | UITableView | ListView | ListView | |
Map |
MapRenderer | MKMapView | MapView | MapControl | |
Path |
PathRenderer | CALayer | View | Path | |
Picker |
PickerRenderer | UITextField | EditText | EditText | ComboBox |
Polygon |
PolygonRenderer | CALayer | View | Polygon | |
Polyline |
PolylineRenderer | CALayer | View | Polyline | |
ProgressBar |
ProgressBarRenderer | UIProgressView | ProgressBar | ProgressBar | |
RadioButton |
RadioButtonRenderer | UIButton | AppCompatRadioButton | RadioButton | |
Rectangle |
RectangleRenderer | CALayer | View | Rectangle | |
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 |
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 |