From 61f34d113c9f6941194a6ed3101f54158de722a3 Mon Sep 17 00:00:00 2001 From: Marcus Lum Date: Tue, 30 Aug 2016 13:37:07 -0400 Subject: [PATCH] Allow Custom Android MapRenderers to override the default MapView options (#285) * Allow Custom Android MapRenderers to override the default MapView options * Larger effort to use CreateNativeControl () everywhere instead of just in the Android AppCompat renderers. --- .../CustomRenderers.cs | 23 ++++++++++++++++++---- Xamarin.Forms.Maps.Android/MapRenderer.cs | 13 ++++++++---- .../AppCompat/ViewRenderer.cs | 1 - .../NativeViewWrapperRenderer.cs | 6 ++++++ .../Renderers/ActivityIndicatorRenderer.cs | 7 ++++++- .../Renderers/ButtonRenderer.cs | 7 ++++++- .../Renderers/DatePickerRenderer.cs | 7 ++++++- .../Renderers/EditorRenderer.cs | 7 ++++++- .../Renderers/EntryRenderer.cs | 7 ++++++- .../Renderers/ImageRenderer.cs | 7 ++++++- .../Renderers/LabelRenderer.cs | 7 ++++++- .../Renderers/ListViewRenderer.cs | 7 ++++++- .../Renderers/NavigationMenuRenderer.cs | 7 ++++++- .../Renderers/OpenGLViewRenderer.cs | 7 ++++++- .../Renderers/PickerRenderer.cs | 7 ++++++- .../Renderers/ProgressBarRenderer.cs | 7 ++++++- .../Renderers/SearchBarRenderer.cs | 8 +++++++- .../Renderers/SliderRenderer.cs | 7 ++++++- .../Renderers/StepperRenderer.cs | 7 ++++++- .../Renderers/SwitchRenderer.cs | 7 ++++++- .../Renderers/TableViewRenderer.cs | 7 ++++++- .../Renderers/TimePickerRenderer.cs | 7 ++++++- .../Renderers/WebViewRenderer.cs | 7 ++++++- Xamarin.Forms.Platform.Android/ViewRenderer.cs | 2 ++ 24 files changed, 151 insertions(+), 28 deletions(-) diff --git a/Xamarin.Forms.ControlGallery.Android/CustomRenderers.cs b/Xamarin.Forms.ControlGallery.Android/CustomRenderers.cs index 1faa7a9..7f86a85 100644 --- a/Xamarin.Forms.ControlGallery.Android/CustomRenderers.cs +++ b/Xamarin.Forms.ControlGallery.Android/CustomRenderers.cs @@ -97,13 +97,18 @@ namespace Xamarin.Forms.ControlGallery.Android { } + protected override global::Android.Widget.ListView CreateNativeControl() + { + return new global::Android.Widget.ListView(Forms.Context); + } + protected override void OnElementChanged(ElementChangedEventArgs e) { base.OnElementChanged(e); if (Control == null) { - SetNativeControl(new global::Android.Widget.ListView(Forms.Context)); + SetNativeControl(CreateNativeControl()); } if (e.OldElement != null) @@ -266,13 +271,18 @@ namespace Xamarin.Forms.ControlGallery.Android { } + protected override global::Android.Widget.ListView CreateNativeControl() + { + return new global::Android.Widget.ListView(Forms.Context); + } + protected override void OnElementChanged(ElementChangedEventArgs e) { base.OnElementChanged(e); if (Control == null) { - SetNativeControl(new global::Android.Widget.ListView(Forms.Context)); + SetNativeControl(CreateNativeControl()); } if (e.OldElement != null) @@ -406,7 +416,7 @@ namespace Xamarin.Forms.ControlGallery.Android return view; } } - public class CustomContentRenderer : ViewRenderer + public abstract class CustomContentRenderer : ViewRenderer { } @@ -435,11 +445,16 @@ namespace Xamarin.Forms.ControlGallery.Android public class CustomButtonRenderer : ButtonRenderer { + protected override AButton CreateNativeControl() + { + return new CustomNativeButton(Context); + } + protected override void OnElementChanged(ElementChangedEventArgs