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 useToAndroid(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 useCreateRenderer(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
- "Better Desktop Support" (#1126)
- "Forms Embedding" (#1124) (#1191)
- "LayoutCompression" (#1136)
- "Merged Dictionaries" (#869) (#1138) (#1148)
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)