呈现器基类和本机控件
每个 Xamarin.Forms 控件都有一个附带的呈现器,适用于创建本机控件实例的各个平台。 本文列出了用于实现每个 Xamarin.Forms 页面、布局、视图和单元的呈现器和本机控件类。
除 MapRenderer
类以外,可以在以下命名空间中找到特定于平台的呈现器:
- iOS – Xamarin.Forms.Platform.iOS
- Android – Xamarin.Forms.Platform.Android
- Android (AppCompat) – Xamarin.Forms.Platform.Android.AppCompat
- Android (FastRenderers) - Xamarin.Forms.Platform.Android.FastRenderers
- 通用 Windows 平台 (UWP) – Xamarin.Forms.Platform.UWP
有关快速呈现器的详细信息,请参阅 Xamarin.Forms 快速呈现器。
MapRenderer
类位于以下命名空间::
- iOS – Xamarin.Forms.Maps.iOS
- Android – Xamarin.Forms.Maps.Android
- 通用 Windows 平台 (UWP) – Xamarin.Forms.Maps.UWP
注意
有关为 Shell 应用程序创建自定义呈现器的信息,请参阅 Xamarin.Forms Shell 自定义呈现器。
页
下表列出实现每个 Xamarin.Forms页面类型的呈现器和本机控件类:
页面 | 呈现器 | iOS | Android | Android (AppCompat) | UWP |
---|---|---|---|---|---|
ContentPage |
PageRenderer | UIViewController | ViewGroup | FrameworkElement | |
FlyoutPage |
PhoneFlyoutPageRenderer (iOS - 手机), TabletFlyoutPageRenderer (iOS - 平板电脑), MasterDetailRenderer (Android), FlyoutPageRenderer (Android AppCompat), FlyoutPageRenderer (UWP) | UIViewController (手机), UISplitViewController (平板电脑) | DrawerLayout (v4) | DrawerLayout (v4) | FrameworkElement (自定义控件) |
NavigationPage |
NavigationRenderer (iOS 和 Android), NavigationPageRenderer (Android AppCompat), NavigationPageRenderer (UWP) | UIToolbar | ViewGroup | ViewGroup | FrameworkElement (自定义控件) |
TabbedPage |
TabbedRenderer (iOS 和 Android), TabbedPageRenderer (Android AppCompat), TabbedPageRenderer (UWP) | UIView | ViewPager | ViewPager | FrameworkElement (透视) |
TemplatedPage |
PageRenderer | UIViewController | ViewGroup | FrameworkElement | |
CarouselPage |
CarouselPageRenderer | UIScrollView | ViewPager | ViewPager | FrameworkElement (FlipView) |
布局
下表列出实现每个 Xamarin.Forms布局类型的呈现器和本机控件类:
Layout | 呈现器 | iOS | Android | Android (AppCompat) | UWP |
---|---|---|---|---|---|
ContentPresenter |
ViewRenderer | UIView | 视图 | 视图 | FrameworkElement |
ContentView |
ViewRenderer | UIView | 视图 | 视图 | FrameworkElement |
FlexLayout |
ViewRenderer | UIView | 视图 | 视图 | FrameworkElement |
Frame |
FrameRenderer | UIView | ViewGroup | CardView | 边框 |
ScrollView |
ScrollViewRenderer | UIScrollView | ScrollView | ScrollView | ScrollViewer |
TemplatedView |
ViewRenderer | UIView | 视图 | 视图 | FrameworkElement |
AbsoluteLayout |
ViewRenderer | UIView | 视图 | 视图 | FrameworkElement |
Grid |
ViewRenderer | UIView | 视图 | 视图 | FrameworkElement |
RelativeLayout |
ViewRenderer | UIView | 视图 | 视图 | FrameworkElement |
StackLayout |
ViewRenderer | UIView | 视图 | 视图 | FrameworkElement |
视图
下表列出实现每个 Xamarin.Forms视图类型的呈现器和本机控件类:
视图 | 呈现器 | iOS | Android | Android (AppCompat) | UWP |
---|---|---|---|---|---|
ActivityIndicator |
ActivityIndicatorRenderer | UIActivityIndicator | ProgressBar | ProgressBar | |
BoxView |
BoxRenderer (iOS 和 Android), BoxViewRenderer (UWP) | UIView | ViewGroup | 矩形 | |
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 | 视图 | 椭圆形 | |
Entry |
EntryRenderer | UITextField | EditText | TextBox | |
Image |
ImageRenderer | UIImageView | ImageView | 映像 | |
ImageButton |
ImageButtonRenderer | UIButton | AppCompatImageButton | Button | |
IndicatorView |
IndicatorViewRenderer | UIPageControl | LinearLayout | ||
Label |
LabelRenderer | UILabel | TextView | TextBlock | |
Line |
LineRenderer | CALayer | 视图 | 线条 | |
ListView |
ListViewRenderer | UITableView | ListView | ListView | |
Map |
MapRenderer | MKMapView | MapView | MapControl | |
Path |
PathRenderer | CALayer | 视图 | 路径 | |
Picker |
PickerRenderer | UITextField | EditText | EditText | ComboBox |
Polygon |
PolygonRenderer | CALayer | 视图 | 多边形 | |
Polyline |
PolylineRenderer | CALayer | 视图 | 折线 | |
ProgressBar |
ProgressBarRenderer | UIProgressView | ProgressBar | ProgressBar | |
RadioButton |
RadioButtonRenderer | UIButton | AppCompatRadioButton | RadioButton | |
Rectangle |
RectangleRenderer | CALayer | 视图 | 矩形 | |
RefreshView |
RefreshViewRenderer | UIView | SwipeRefreshLayout | RefreshContainer | |
SearchBar |
SearchBarRenderer | UISearchBar | SearchView | AutoSuggestBox | |
Slider |
SliderRenderer | UISlider | SeekBar | 滑块 | |
Stepper |
StepperRenderer | UIStepper | LinearLayout | 控制 | |
SwipeView |
SwipeViewRenderer | UIView | 视图 | SwipeControl | |
Switch |
SwitchRenderer | UISwitch | Switch | SwitchCompat | ToggleSwitch |
TableView |
TableViewRenderer | UITableView | ListView | ListView | |
TimePicker |
TimePickerRenderer | UITextField | EditText | TimePicker | |
WebView |
WkWebViewRenderer (iOS)、WebViewRenderer(Android 和 UWP) | WkWebView | WebView | WebView |
单元
下表列出实现每个 Xamarin.Forms单元格类型的呈现器和本机控件类:
单元 | 呈现器 | iOS | Android | UWP |
---|---|---|---|---|
EntryCell |
EntryCellRenderer | 带有 UITextField 的 UITableViewCell | 带有 TextView 和 EditText 的 LinearLayout | 带有 TextBox 的 DataTemplate |
SwitchCell |
SwitchCellRenderer | 带有 UISwitch 的 UITableViewCell | Switch | 带有网格且包含 TextBlock 和 ToggleSwitch 的 DataTemplate |
TextCell |
TextCellRenderer | UITableViewCell | 带有两个 TextViews 的 LinearLayout | 带有 StackPanel 且包含两个 Textblock 的 DataTemplate |
ImageCell |
ImageCellRenderer | 带有 UIImage 的 UITableViewCell | 带有两个 TextViews 和一个 ImageView 的 LinearLayout | 带有网格且包含一个 Image 和两个 TextBlocks 的 DataTemplate |
ViewCell |
ViewCellRenderer | UITableViewCell | 视图 | 带有 ContentPresenter 的 DataTemplate |