Xamarin.Forms 2.5.0-stable

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.77107 Stable

  • No changes from pre3!

2.5.0.75255-pre3

Bug Fixes

  • 44886 - "UWP Listview ItemSelected event triggered twice for each selection" (#1005) (#1157)
  • 46632 - "[UWP] Clicking button in listview viewcell triggers both button clicked and cell ItemTapped" (#1133) (#1157)
  • 59248 - "ItemTapped event is not fired when keyboard Enter Pressed on ListView" (#1133) (#1143) (#1157)
  • 59718 - "Multiple issues with listview and navigation in UWP" (#1157)
  • 59813 - ""NullReferenceException" in "Xamarin.Forms.Platform.iOS.Renderers.LabelRenderer.cs" within "UpdateText()" & "UpdateTextColor()"" (#1216) (#1226) (#1244)
  • 59863 - "TapGestureRecognizer extremely finicky" (#1188) (#1227)
  • 59896 - "v2.4.0: Adding inserting section to ListView causes crash IF first section is empty" (#1244)
  • 59925 - "Entry height different between XF 2.4.0 Pre and all previous versions (iOS)" (#1258)
  • 59927 - "ScrollView height not calculated properly on iOS 11" (#1238)
  • 59996 - "Race condition when disposing MasterDetailPageRenderer on Android app restart" (#1194)
  • 60041 - "Placeholder in Entry box is vertically aligned to bottom" (#1190) (#1220)
  • 60054 - "Trying to update my app to support iOS 11 Large Texts feature. In my custom Navigation Page renderer I have set NavigationBar.PrefersLargeTitles = true;" (#1238)
  • 60337 - "Null Reference Exception in LoadApplication in FormsAppCompatActivity (NRE) due to changes from #59882" (#1221)
  • 60524 - "NRE when rendering ListView with grouping enabled and HasUnevenRows set to true" (#1254)

Other changes

  • "[Core] Hide SetSafeAreaInsets (#1249)" (#1249)
  • "[Core]Set default value for IsPresented on MacOS (#1223)" (#1223)
  • "[iOS] Delay for ScrollTo to work on iOS11 (#1211)" (#1211)
  • "[MacOS] Fix Menus (#1225)" (#1225)
  • "[UITest] Try dev uitest for api25 fixes (#1242)" (#1242)
  • "Change overload of CreateRenderer to internal for previewer compatibility (#1237)" (#1237)
  • "Merge 2.4.0 into 15-5 branch (#1230)" (#1230)
  • "Revert "Fix border on android buttons (#941)" (#1192)" (#1192)

2.5.0.19271-pre2

Bug Fixes

  • 45330 - "System.ObjectDisposedException: Cannot access a disposed object. Object name: 'Android.Views.GestureDetector'." (#706) (#829) (#1063) (#1155)
  • 58145 - "[UWP] Entry text not visible when using dark theme" (#1206)
  • 59595 - "Error with SearchBar inside of a Grid with iOS 11 SDK" (#1203)
  • 59818 - "StaticResource binding in ColumnDefinition fails with type mismatch Exception" (#1176)
  • 59863 - "TapGestureRecognizer extremely finicky" (#1188) Note - This fix is only only for API level 23 and lower.
  • 59882 - "Xam Forms 2.4 not resuming from reused App and Pages" (#1200) (#1212)
  • 59961 - "TapGestureRecognizer with NumberOfTapsRequired="1" works only with double tap" (#1188) Note - This fix is only only for API level 23 and lower.
  • 60005 - "[UWP] Crashes upon startup when compiled for the Windows Store." (#1186)
  • 60056 - "[UWP] ViewCell ignores margins of it's child" (#1204)

Other changes

  • "[All] Expose the Flags to the Core (#1181)" (#1181)
  • "[iOS11] Fix Secondary toolbar items iOS11 (#1208)" (#1208)
  • "[Packages] Update UITest and consolidate packages (#1201)" (#1201)
  • "Revert "Fix border on android buttons (#941)" (#1178)" (#1178)

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)

Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.