Xamarin.Forms 2.5.0-pre1 Release Notes

Important notes

Supporting Forms Embedding required a significant number of deprecations in the Android backend. Please update any custom renderers.

  • ButtonRenderer: This constructor is obsolete as of version 2.5. Please use ButtonRenderer(Context) instead.
  • CarouselPageRenderer: This constructor is obsolete as of version 2.5. Please use CarouselPageRenderer(Context) instead.
  • FrameRenderer: This constructor is obsolete as of version 2.5. Please use FrameRenderer(Context) instead.
  • MasterDetailPageRenderer: This constructor is obsolete as of version 2.5. Please use MasterDetailPageRenderer(Context) instead.
  • NavigationPageRenderer: This constructor is obsolete as of version 2.5. Please use NavigationPageRenderer(Context) instead.
  • PickerRenderer: This constructor is obsolete as of version 2.5. Please use PickerRenderer(Context) instead.
  • SwitchRenderer: This constructor is obsolete as of version 2.5. Please use SwitchRenderer(Context) instead.
  • TabbedPageRenderer: This constructor is obsolete as of version 2.5. Please use TabbedPageRenderer(Context) instead.
  • ViewRenderer: This constructor is obsolete as of version 2.5. Please use ViewRenderer(Context) instead.
  • ColorExtensions: ToAndroid(this Color, int) is obsolete as of version 2.5. Please use ToAndroid(this Color, int, Context) instead.
  • FastButtonRenderer: This constructor is obsolete as of version 2.5. Please use ButtonRenderer(Context) instead.
  • FastFrameRenderer: This constructor is obsolete as of version 2.5. Please use FrameRenderer(Context) instead.
  • FastImageRenderer: This constructor is obsolete as of version 2.5. Please use ImageRenderer(Context) instead.
  • FastLabelRenderer: This constructor is obsolete as of version 2.5. Please use LabelRenderer(Context) instead.
  • Forms: Context is obsolete as of version 2.5. Please use a local context instead.
  • Forms: SetTitleBarVisibility(AndroidTitleBarVisibility) is obsolete as of version 2.5.
  • NativeViewWrapperRenderer: This constructor is obsolete as of version 2.5. Please use NativeViewWrapperRenderer(Context) instead.
  • Platform: CreateRenderer(VisualElement) is obsolete as of version 2.5. Please use CreateRenderer(VisualElement, Context) instead.
  • Platform: This constructor is obsolete as of version 2.5. Please use DefaultRenderer(Context) instead.
  • ActivityIndicatorRenderer: This constructor is obsolete as of version 2.5. Please use ActivityIndicatorRenderer(Context) instead.
  • BoxRenderer: This constructor is obsolete as of version 2.5. Please use BoxRenderer(Context) instead.
  • ButtonRenderer: This constructor is obsolete as of version 2.5. Please use ButtonRenderer(Context) instead.
  • CarouselPageRenderer: This constructor is obsolete as of version 2.5. Please use CarouselPageRenderer(Context) instead.
  • DatePickerRenderer: This constructor is obsolete as of version 2.5. Please use DatePickerRenderer(Context) instead.
  • EditorRenderer: This constructor is obsolete as of version 2.5. Please use EditorRenderer(Context) instead.
  • EntryRenderer: This constructor is obsolete as of version 2.5. Please use EntryRenderer(Context) instead.
  • FrameRenderer: This constructor is obsolete as of version 2.5. Please use FrameRenderer(Context) instead.
  • ImageRenderer: This constructor is obsolete as of version 2.5. Please use ImageRenderer(Context) instead.
  • LabelRenderer: This constructor is obsolete as of version 2.5. Please use LabelRenderer(Context) instead.
  • ListViewRenderer: This constructor is obsolete as of version 2.5. Please use ListViewRenderer(Context) instead.
  • MasterDetailRenderer: This constructor is obsolete as of version 2.5. Please use MasterDetailRenderer(Context) instead.
  • NavigationMenuRenderer: This constructor is obsolete as of version 2.5. Please use NavigationMenuRenderer(Context) instead.
  • NavigationRenderer: This constructor is obsolete as of version 2.5. Please use NavigationRenderer(Context) instead.
  • OpenGLViewRenderer: This constructor is obsolete as of version 2.5. Please use OpenGLViewRenderer(Context) instead.
  • PageRenderer: This constructor is obsolete as of version 2.5. Please use PageRenderer(Context) instead.
  • PickerRenderer: This constructor is obsolete as of version 2.5. Please use PickerRenderer(Context) instead.
  • ProgressBarRenderer: This constructor is obsolete as of version 2.5. Please use ProgressBarRenderer(Context) instead.
  • ScrollViewRenderer: This constructor is obsolete as of version 2.5. Please use ScrollViewRenderer(Context) instead.
  • SearchBarRenderer: This constructor is obsolete as of version 2.5. Please use SearchBarRenderer(Context) instead.
  • SliderRenderer: This constructor is obsolete as of version 2.5. Please use SliderRenderer(Context) instead.
  • StepperRenderer: This constructor is obsolete as of version 2.5. Please use StepperRenderer(Context) instead.
  • SwitchRenderer: This constructor is obsolete as of version 2.5. Please use SwitchRenderer(Context) instead.
  • TabbedRenderer: This constructor is obsolete as of version 2.5. Please use TabbedRenderer(Context) instead.
  • TableViewRenderer: This constructor is obsolete as of version 2.5. Please use TableViewRenderer(Context) instead.
  • TimePickerRenderer: This constructor is obsolete as of version 2.5. Please use TimePickerRenderer(Context) instead.
  • WebViewRenderer: This constructor is obsolete as of version 2.5. Please use WebViewRenderer(Context) instead.
  • ResourceManager: GetDrawable(this Resources, string) is obsolete as of version 2.5.
  • ViewRenderer: This constructor is obsolete as of version 2.5. Please use ViewRenderer(Context) instead.
  • VisualElementRenderer: This constructor is obsolete as of version 2.5. Please use VisualElementRenderer(Context) instead.
  • FormsMaps: Context is obsolete as of version 2.5. Please use a local context instead.
  • MapRenderer: This constructor is obsolete as of version 2.5. Please use MapRenderer(Context) instead.

⚠️ Android Dependency Updates

With Xamarin.Forms 2.3.4, the restriction limiting developers to Android Support Library 23 was lifted allowing developers to choose new Google Play Services and Android Support Library dependencies. This opens up more possibilities and flexibilities for developers, but also vastly complicates resolving dependencies in projects using different libraries. Now in Xamarin.Forms 2.5.0, in order to support Google Play Services 42.1024.0 or greater, Xamarin.Forms depends on Android Support Libraries 25.4.0.2 or greater.

When using Xamarin.Forms 2.5.0, be sure to start with a baseline of these dependencies as appropriate to your project. This is the combination of dependencies with which Xamarin.Forms has been tested.

  • Android Target Framework 7.0 (monoAndroid70)
  • Android Support Libraries 25.4.0.2
  • Google Play Services 42.1024.0
  • Firebase 42.1024.0

Deprecation: [Android] Xamarin.Forms support for Android Target Framework 6. Update your Target Framework to 7.0 or greater, and resolve Android dependencies accordingly. This does not impact building for lower Android versions.

2.5.0.289-pre1

Roadmap Features

Bug Fixes

  • 36681 - "[FormsApplicationActivity] NRE When Replacing CurrentPage's Content When Picker is Unfocused" (#3634) (#1132)
  • 46363 - "TapGestureRecognizer blocks List View Context Actions" (#985) (#1135) (#1154)
  • 51427 - "Custom Font Not Working Inside NavigationPage" (#730)
  • 54383 - "AppLinks Package Causes Crash at Launch After Updating Google Play Services Packages" (#1037) (#1107)
  • 54645 - "(Android) Time Picker ignores "use 24-h format" settings" (#1082)
  • 56274 - "Cell calling Command.ChangeCanExecute in ContextAction chrashes" (#1147)
  • 57469 - "android.runtime.JavaProxyThrowable: System.IO.IOException: Sharing violation on path PropertyStore.forms.tmp" (#1075)
  • 57787 - "On UWP, setting the BackgroundColor of a Slider results in the slider rail/track not being displayed initially" (#1113)
  • 57855 - "[UWP] DateTime.MinValue is not allowed for MinimumDate of DatePicker" (#1056)
  • 58071 - "TimePicker time changed AFTER unfocus event" (#1051)
  • 58630 - "UWP: controls are ignoring their renders." (#1089)
  • 58779 - "[MacOS] DisplayActionSheet on MacOS needs scroll bars if list is long" (#1109)
  • 58987 - "[UWP] Default layout for Image different than on iOS and Android" (#1121)
  • 59507 - "Setting BindingContext Doesn't Work if Equality of BindingContext is Equal" (#1150)
  • 59595 - "Error with SearchBar inside of a Grid with iOS 11 SDK" (#1203)

Other changes

  • "[All] Use IReflectableType when accessing the Registrar (#1006)" (#1006)
  • "[Android] Add platform specific for Elevation (#1158)" (#1158)
  • "[android] fix binding warnings from FormsViewGroup (#1117)" (#1117)
  • "[Android] Make sure to clean the element reference (#1139)" (#1139)
  • "[Internal] Stopgap support for running UI Tests on UWP Desktop (#1067)" (#1067)
  • "[iOS11] Fix Secondary toolbar items iOS11 (#1208)" (#1208)
  • "[MacOS] Navigation Transition Style (#1168)" (#1168)
  • "[macOS] ScrollView Resize Fix (#1170)" (#1170)
  • "[Tests] Fix UITests that are failing on API 19 android (#1129)" (#1129)
  • "[UITest] Fix FastRenderer test for iOS (#1102)" (#1102)
  • "[UITests] Update uitest dev packages ios11 (#1145)" (#1145)
  • "[XamlC] Compiled UriTypeConverter (#1166)" (#1166)
  • "Add sln for VS2017 , remove not used Page Gallery (#1171)" (#1171)
  • "Better XF .targets errors reporting (#1125)" (#1125)
  • "Enables custom images (especially SVG) through the new IImageSourceHandler to work with tab bar icons on Android (like it does on iOS). And also on cell adapters and navigation page menu. (#1130)" (#1130)
  • "Prototypical Cell Cache for IsEnabled testing (#1179)" (#1179)
  • "Prototypical Cell Cache for IsEnabled testing; UITest (#1153)" (#1153)
  • "remove disallowaddtobackstack (#919)" (#919)
  • "Revert "Prototypical Cell Cache for IsEnabled testing; UITest" (#1156)" (#1156)