Xamarin.Forms.4.5.0.530 (4.5.0 Service Release 3) Release Notes

Getting Started | What's New | Known Issues | Breaking Changes | API Changes | Blogs | Thank you | Feedback | Open Source

Summary

Many core controls have received additional improvements, and we've introduced a few new capabilities to optimize your productivity developing cross-platform applications.

AndroidX

Xamarin.Forms now uses the latest AndroidX libraries from Google. These replace the Android Support libraries which are no longer being updated. This requires no change to your code. If you notice any undesirable side-effects, please open an issue here.

Built with Visual Studio 2019

The Xamarin.Forms NuGet is now being built with Visual Studio 2019 and the latest Mono and platform SDKs while still supporting the ability to build with Visual Studio 2017 and the equivalent on Mac. If you notice any undesirable side-effects, please open an issue here.

Embedded Fonts

Now to use fonts you only need to add them to your Xamarin.Forms shared library as embedded resources and reference them with an assembly tag, rather than adding them to multiple platforms, each with their own implementation rules. To your AssemblyInfo.cs add:

using Xamarin.Forms;

[assembly: ExportFont("CuteFont-Regular.ttf")]

Then to use the font in XAML, reference that name:

<Label Text="Hello Embedded Fonts" FontFamily="CuteFont-Regular"/>

VisualStateManager Target

Now you can update multiple controls when a state changes by specifying the target control and property. It can look something like this:

<VisualStateManager.VisualStateGroups>
	<VisualStateGroup Name="ColorStates">
		<VisualState Name="Red">
			<VisualState.Setters>
				<Setter TargetName="TargetLabel1" Property="Label.BackgroundColor" Value="#340002" />
				<Setter TargetName="TargetLabel1" Property="Label.TextColor" Value="#920e0c" />
				<Setter TargetName="TargetLabel1" Property="Label.Text" Value="Red" />
			</VisualState.Setters>
		</VisualState>

		<VisualState Name="Blue">
			<VisualState.Setters>
				<Setter TargetName="TargetLabel1" Property="Label.BackgroundColor" Value="#4a707a" />
				<Setter TargetName="TargetLabel1" Property="Label.TextColor" Value="#94b0b7" />
				<Setter TargetName="TargetLabel1" Property="Label.Text" Value="Blue" />
			</VisualState.Setters>
		</VisualState>
	</VisualStateGroup>
</VisualStateManager.VisualStateGroups>

Remove UIWebView

To make sure the UIWebView control renderer is linked out even when it's not being directly used, and to avoid warnings from Apple during the review process, add this flag to your iOS projects mtouch arguments:

--optimize=experimental-xforms-product-type

Note that this also requires a release of Xamarin.iOS that'll come after mid-January via a service release to Visual Studio 2019 and Visual Studio 2019 for Mac.

What's New in this Release

Roadmap

  • "[Tizen] MediaElement control support" (#9634) (added in 4.5.0.396 (4.5.0 Service Release 1))
  • "Custom/Embedded fonts" (#6013)
  • Github #1692 - "[F100] MediaPlayer View" (#9439) (added in 4.5.0.282-pre4 (4.5.0 Pre Release 4))
  • Github #4232 - "Spec: Visual State Manager Improvements" (#9422) (added in 4.5.0.282-pre4 (4.5.0 Pre Release 4))
  • Github #4924 - "[F100] Add "Target" support to VisualStateManager" (#5034) (#8144)

F100s

  • "[iOS] Add UpdateMode platform-specific to DatePicker and TimePicker" (#8048)
  • Github #2235 - "Improved image organization" (#3263) (#3420)
  • Github #3228 - "Feature Request - Default Search Directory for UWP Icons (Platform Specific)" (#3263) (#3420)
  • Github #5177 - "[Enhancement] Change NavigationPage back button color on Android" (#7365)
  • Github #7135 - "[Enhancement] Add platform specific property to set the iOS UITabBar Translucent property to false" (#7315)

CollectionView

  • "[Android] Changes in SwipeView to avoid the use of APIs that require a specific API level" (#9175) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • "[Android] Fix NRE when setting the VisualState on the default cell" (#9708) (added in 4.5.0.396 (4.5.0 Service Release 1))
  • "[Android] Fix some issues in UITests" (#8764)
  • "[iOS] Fix NRE when not using template on CarouselView" (#9676) (added in 4.5.0.356 (4.5.0))
  • "[platform] improve perf of PropertyChangedEventArgsExtensions" (#9084)
  • "[UWP] Implement CurrentItem on CarouselView" (#7590)
  • "[UWP] Make sure to call UpdateInitialPosition on CarouselView" (#10041) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • "Move CarouselViewRenderer scrolled overrides to listener" (#9414) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • "Propagate BindingContext to ItemsLayout" (#9221) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • "The great Androidx IF Def'ing of 2019" (#8898) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))
  • Github #10019 - "[Bug, UWP] IndicatorCodeGallery - I can't get to the last item." (#10068) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #7323 - "[Xamarin.iOS] Deprecated API Usage UIWebView" (#8001)
  • Github #7393 - "[Bug] CollectionView problems and crashes with IsGrouped="true"" (#8808) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #7904 - "[Bug] CarouselView doesn't implement the defined visual states" (#8785) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #8198 - "[Bug] ScrollView at CollectionView at RefreshView always leads to Pull-To-Refresh" (#8224)
  • Github #8203 - "CollectionView fires SelectionChanged x (number of items selected +1) times, while incrementing SelectedItems from 0 to number of items each time" (#8737) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #8345 - "[Bug] CollectionView ItemSpacing does not affect the Item spacing on iOS" (#8872)
  • Github #8557 - "[Bug] Grouped header with incorrect size when use GridItemsLayout with two columns on the CollectionView" (#8563) (added in 4.5.0.356 (4.5.0))
  • Github #8586 - "[Bug] Tizen Tv - app crashes if collectionview is IsVisible is set to false" (#9367) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #8700 - "[Bug] [Android] CollectionView don't set BindingContext in Header" (#9361) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #8899 - "Clearing CollectionView IsGrouped="True" crashes application iOS & UWP" (#9287) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #8912 - "[Bug] Indicator.MaximumVisible property has no effect" (#9592) (added in 4.5.0.356 (4.5.0))
  • Github #8913 - "[Bug][iOS] IndicatorView.IndicatorsShape=Square has no effect on iOS" (#9595) (added in 4.5.0.356 (4.5.0))
  • Github #8992 - "[Bug] IndicatorView - ItemsSourceBy not showing up in Intellisense" (#9332) (added in 4.5.0.356 (4.5.0))
  • Github #9014 - "[Bug] IndicatorView shows no indicators on UWP" (#9614) (added in 4.5.0.356 (4.5.0))
  • Github #9020 - "[Bug] CarouselView Android Can't Scroll Back when Last Item is Reached" (#9700) (added in 4.5.0.396 (4.5.0 Service Release 1))
  • Github #9030 - "[Bug] ClassNotFoundException when using snap points on API < 23" (#9378) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #9087 - "[Bug] Collection View items don't load bindable properties values inside OnElementChanged" (#9273) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #9159 - "[Bug] CarouselView IsBounceEnabled=False has no effect on Android" (#9160) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))
  • Github #9196 - "[Bug] [iOS] CollectionView EmptyView causes the application to crash" (#9575) (added in 4.5.0.356 (4.5.0))
  • Github #9322 - "[Bug] CarouselView's Position doesn't get updated to reflect ObservableCollection.Remove" (#9854) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #9417 - "XF 4.5 pre2 crashes on Swipe GetSwipeItemSize " (#9464) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #9436 - "[Bug] [iOS] --optimize=experimental-xforms-product-type additional mtouch argument causes app crash" (#9505) (added in 4.5.0.356 (4.5.0))
  • Github #9583 - "[Bug] iOS CarouselView size not changed if device orientation changed" (#9654) (added in 4.5.0.396 (4.5.0 Service Release 1))
  • Github #9666 - "[Bug][iOS] IndicatorView not visible when ItemSource of Carousel is set delayed (INotifyPropertyChanged)" (#9672) (added in 4.5.0.396 (4.5.0 Service Release 1))

Shell

  • "[UWP] Enables usage of font image source for bottom bar tabs" (#8354)
  • "Make create shell table view controller virtual" (#9327) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • "Propagate cleared shell elements correctly" (#9615) (added in 4.5.0.356 (4.5.0))
  • "Shell hotreload fixes when changing Shell class" (#10064) (added in Xamarin.Forms.4.5.0.530 (4.5.0 Service Release 3))
  • "Shell Modal Behavior" (#8790) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))
  • Github #5108 - "Frame with a shadow on iOS adds a shadow to the contents" (#7518)
  • Github #6384 - "[Bug] [iOS] content page in tabbed page not showing inside shell tab" (#7532)
  • Github #6784 - "[Bug] [Shell] [iOS] ShellItem.CurrentItem not set when selecting shell section aggregated in more tab" (#6786) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #6804 - "[Bug] Shell SearchHandler - Search text getting lost on execute search" (#8101) (added in 4.5.0.356 (4.5.0))
  • Github #7181 - "[Bug] Cannot update ToolbarItem text and icon" (#8254)
  • Github #7230 - "[Enhancement] Shell allow dynamic load FlyoutItem!" (#9023)
  • Github #7396 - "[Bug] Shell: Setting Shell.BackgroundColor overrides all colors of TabBar" (#7962)
  • Github #7416 - "[Bug] Crash In ShellSectionRootHeader with scrollable top tabs" (#7884)
  • Github #8211 - "[Bug] Shell throws NullRef if improperly configured" (#8250)
  • Github #8767 - "[Bug][iOS] SwipeView SwipeBehaviorOnInvoked RemainOpen issue on iOS" (#9664) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #9344 - "[Bug][Shell] Shell pass data navigation failure with Xaminals in 4.5-pre2" (#9348) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #9371 - "[Bug] FontImage Icon fails on Android in certain situations" (#9506) (added in 4.5.0.356 (4.5.0))
  • Github #9483 - "[Bug] iOS Shell - ToolbarItems not updating when using TabBar" (#9628) (added in 4.5.0.356 (4.5.0))
  • Github #9801 - "[Bug] Tab.Items.Clear() crashes on 4.5.0.356." (#9940) (added in 4.5.0.495 (4.5.0 Service Release 2))

Visual

  • "Androidx bump to stable release packages" (#9594) (added in 4.5.0.356 (4.5.0))
  • "Apply cecil fixes to make packages 2017 compatible" (#9145) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))
  • "Ios 2017 compatible Xamarin.Forms.Platform.iOS" (#9760) (added in 4.5.0.396 (4.5.0 Service Release 1))
  • Github #4606 - "[Android] ImageButton on android is not clipping view to corner radius" (#7723)
  • Github #5968 - "[Bug] ProgressBar with Visual=Material causing crash on Android 5.0" (#6199) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #6187 - "Visual Material Entry underline color should reference PlaceholderColor" (#8530) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #8633 - "[Bug] NuGet version conflict between Xamarin.Froms.Maps and Microsoft.AppCenter.Push" (#7660)
  • Github #9593 - "When Xamarin.Forms isn't referenced in the head projects, XF build targets aren't imported" (#10125) (added in Xamarin.Forms.4.5.0.530 (4.5.0 Service Release 3))

Maps

  • Github #4691 - "[Enhancement] SecurityException from Forms.Maps with explicit target SDK" (#7282)

Other Enhancements

  • "[macOS] Add character spacing to button and label" (#8206)
  • "[macOS] Implement slider min/max/thumb color" (#8098)
  • "[Tizen] Supports Custom/Embedded and System fonts" (#9138) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))
  • "[WPF] ListView.Scrolled event implemented" (#8197)
  • "[WPF] Frame: Add shadow and padding" (#7964)
  • "[Xaml/XamlC] Accept prefixed property names of markup extensions" (#5186)
  • "[XamlC] Support variance" (#8535)
  • "WPF Implement editor placeholder" (#8504)
  • Github #3149 - "Master behavior of Popover should be allowed on MacOS desktop" (#8312)
  • Github #5680 - "[Enhancement] Add method to force value coercion" (#8097)
  • Github #5830 - "[Enhancement] EntryCellTableViewCell should be public" (#8286)
  • Github #7540 - "[Enhancement] Include the name of the duplicate element for INameScope.RegisterName" (#8702)
  • Github #7667 - "Make SetupLayer on FrameRenderer virtual" (#7871)
  • Github #8346 - "[Enhancement] Pre-define DisplayPromptAsync" (#8362)
  • Github #9189 - "i wish some day you add “AdaptiveTrigger” of UWP Visual states to xamarin forms too" (#9422) (added in 4.5.0.282-pre4 (4.5.0 Pre Release 4))

Features in Preview

Current experimental flags

Are you on the cutting edge? Try out ALL of our experimental features now using these flags! Read more about experimental flags.

  • Shell_UWP_Experimental
  • IndicatorView_Experimental
  • SwipeView_Experimental
  • CarouselView_Experimental
  • MediaElement_Experimental
  • StateTriggers_Experimental

SwipeView

Try it with Forms.SetFlags("SwipeView_Experimental");
  • "[Android, iOS] Improve the swipe threshold used in Execute Mode" (#9217) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))
  • "[Android] Changes in SwipeView to avoid the use of APIs that require a specific API level" (#9175) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • "[Android] Fix issue automatically closing the SwipeView when scrolling" (#8654) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • "Centered text and icon in SwipeItem" (#8823) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • "Fix SwipeItem cast issue on SwipeView" (#9907) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #8753 - "[Bug] Assign custom SwipeItems in the SwipeView" (#8757) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #8767 - "[Bug][iOS] SwipeView SwipeBehaviorOnInvoked RemainOpen issue on iOS" (#9664) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #8777 - "[Bug] SwipeView crash if Text not is set on SwipeItem" (#8822) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #8779 - "[Bug][iOS][Android] Entry in custom SwipeItemView can't gain focus" (#8832) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #8781 - "[Bug][iOS] SwipeViewItem rendering issue on iOS" (#8828) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))
  • Github #8782 - "[Bug][iOS][Android] SwipeViewItems cut off on one or more sides" (#8824) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))
  • Github #8807 - "[Bug][Android] SwipeView rendering issues with multiple SwipeItems collection" (#8849) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #8973 - "[Bug] SwipeView - no animation when revealing CollectionView items " (#8987) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))
  • Github #9007 - "[Bug] SwipeView inside SwipeView - not working" (#8653) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #9028 - "[Bug] The Swipe view does not call the command associated to it when tapped" (#9177) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #9030 - "[Bug] ClassNotFoundException when using snap points on API < 23" (#9378) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #9305 - "[Bug] Swipe View BackgroundColor Issues" (#9726) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #9329 - "[Bug] Xamarin.Forms SwipeView IsEnabled not working" (#9494) (added in 4.5.0.356 (4.5.0))
  • Github #9417 - "XF 4.5 pre2 crashes on Swipe GetSwipeItemSize " (#9464) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #9499 - "[Bug][iOS] SwipeView MonoTouchException in iOS 12 in Forms 4.5-pre3" (#9501) (added in 4.5.0.356 (4.5.0))
  • Github #9588 - "[Bug] iOS: Frame inside SwipeView can't be swiped" (#9637) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #9646 - "[Android] SwipeView items don't fully remove themselves when unrevealed" (#9725) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #9738 - "[Enhancement] SwipeViewItem parent is null, shouldn't be" (#9743) (added in 4.5.0.396 (4.5.0 Service Release 1))

CarouselView

Try it with Forms.SetFlags("CarouselView_Experimental");
  • "[Android] Fix NRE when setting the VisualState on the default cell" (#9708) (added in 4.5.0.396 (4.5.0 Service Release 1))
  • "[iOS] Fix NRE when not using template on CarouselView" (#9676) (added in 4.5.0.356 (4.5.0))
  • "[platform] improve perf of PropertyChangedEventArgsExtensions" (#9084)
  • "[UWP] Implement CurrentItem on CarouselView" (#7590)
  • "[UWP] Make sure to call UpdateInitialPosition on CarouselView" (#10041) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • "Move CarouselViewRenderer scrolled overrides to listener" (#9414) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • "The great Androidx IF Def'ing of 2019" (#8898) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))
  • Github #10019 - "[Bug, UWP] IndicatorCodeGallery - I can't get to the last item." (#10068) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #7323 - "[Xamarin.iOS] Deprecated API Usage UIWebView" (#8001)
  • Github #7904 - "[Bug] CarouselView doesn't implement the defined visual states" (#8785) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #8198 - "[Bug] ScrollView at CollectionView at RefreshView always leads to Pull-To-Refresh" (#8224)
  • Github #8913 - "[Bug][iOS] IndicatorView.IndicatorsShape=Square has no effect on iOS" (#9595) (added in 4.5.0.356 (4.5.0))
  • Github #8992 - "[Bug] IndicatorView - ItemsSourceBy not showing up in Intellisense" (#9332) (added in 4.5.0.356 (4.5.0))
  • Github #9014 - "[Bug] IndicatorView shows no indicators on UWP" (#9614) (added in 4.5.0.356 (4.5.0))
  • Github #9020 - "[Bug] CarouselView Android Can't Scroll Back when Last Item is Reached" (#9700) (added in 4.5.0.396 (4.5.0 Service Release 1))
  • Github #9159 - "[Bug] CarouselView IsBounceEnabled=False has no effect on Android" (#9160) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))
  • Github #9322 - "[Bug] CarouselView's Position doesn't get updated to reflect ObservableCollection.Remove" (#9854) (added in 4.5.0.495 (4.5.0 Service Release 2))
  • Github #9583 - "[Bug] iOS CarouselView size not changed if device orientation changed" (#9654) (added in 4.5.0.396 (4.5.0 Service Release 1))
  • Github #9666 - "[Bug][iOS] IndicatorView not visible when ItemSource of Carousel is set delayed (INotifyPropertyChanged)" (#9672) (added in 4.5.0.396 (4.5.0 Service Release 1))

MediaElement

Try it with Forms.SetFlags("MediaElement_Experimental");
  • "[Tizen] MediaElement control support" (#9634) (added in 4.5.0.396 (4.5.0 Service Release 1))
  • "Fix UWP volume, mediasource exception, android position" (#9452) (added in 4.5.0.282-pre4 (4.5.0 Pre Release 4))
  • Github #1692 - "[F100] MediaPlayer View" (#9439) (added in 4.5.0.282-pre4 (4.5.0 Pre Release 4))
  • Github #9742 - "[Bug] MediaElement crashes on iOS when given a URL and device has no network" (#9746) (added in 4.5.0.396 (4.5.0 Service Release 1))

UWP Shell

Try it with Forms.SetFlags("Shell_UWP_Experimental");
  • "[UWP] Enables usage of font image source for bottom bar tabs" (#8354)
  • Github #7230 - "[Enhancement] Shell allow dynamic load FlyoutItem!" (#9023)
  • Github #8211 - "[Bug] Shell throws NullRef if improperly configured" (#8250)

Dual Screen

  • "Don't Init DualScreenService on non duo device" (#9733) (added in 4.5.0.396 (4.5.0 Service Release 1))
  • "Fix TPV on UWP platform projects" (#9396) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • "Fix TPV to adjust to native layout changes better" (#9445) (added in 4.5.0.282-pre4 (4.5.0 Pre Release 4))
  • "Fixes TPV so it works anywhere on the screen" (#9427) (added in 4.5.0.282-pre4 (4.5.0 Pre Release 4))
  • "TPV Additional Samples and event notification changes" (#9487) (added in 4.5.0.282-pre4 (4.5.0 Pre Release 4))
  • "TPV API Adjustments" (#9477) (added in 4.5.0.282-pre4 (4.5.0 Pre Release 4))
  • "TPV Initial Project Setup" (#9418) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))

State Triggers

Try it with Forms.SetFlags("StateTriggers_Experimental");
  • "Fixed mistake in StateTriggersExperimental verification" (#9889) (added in 4.5.0.495 (4.5.0 Service Release 2))

DarkMode

  • Github #8294 - "[Bug] UIStatusBarStyle does not appear to change when device is in dark mode" (#8791) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))

IndicatorView

Try it with Forms.SetFlags("IndicatorView_Experimental");
  • Github #8912 - "[Bug] Indicator.MaximumVisible property has no effect" (#9592) (added in 4.5.0.356 (4.5.0))

Release History

  • Wednesday, April 1, 2020 - Xamarin.Forms.4.5.0.530 (4.5.0 Service Release 3)
  • Wednesday, March 25, 2020 - Xamarin.Forms 4.5.0.495 (4.5.0 Service Release 2)
  • Monday, March 16, 2020 - Xamarin.Forms 4.5.0.396 (4.5.0 Service Release 1)
  • Wednesday, February 26, 2020 - Xamarin.Forms 4.5.0.356 (4.5.0)
  • Monday, February 10, 2020 - Xamarin.Forms 4.5.0.282-pre4 (4.5.0 Pre Release 4)
  • Wednesday, February 5, 2020 - Xamarin.Forms 4.5.0.266-pre3 (4.5.0 Pre Release 3)
  • Wednesday, January 22, 2020 - Xamarin.Forms 4.5.0.187-pre2 (4.5.0 Pre Release 2)
  • Monday, January 13, 2020 - Xamarin.Forms 4.5.0.142-pre1 (4.5.0 Pre Release 1)

Wednesday, April 1, 2020 - Xamarin.Forms.4.5.0.530 (4.5.0 Service Release 3)

Issues Fixed

Additional fixes included in this release

  • "Add equivalent androidx proguard rules" (#10138)
  • "Shell hotreload fixes when changing Shell class" (#10064)

Wednesday, March 25, 2020 - Xamarin.Forms 4.5.0.495 (4.5.0 Service Release 2)

Issues Fixed

  • Github #10019 - "[Bug, UWP] IndicatorCodeGallery - I can't get to the last item." (#10068)
  • Github #5968 - "[Bug] ProgressBar with Visual=Material causing crash on Android 5.0" (#6199)
  • Github #6187 - "Visual Material Entry underline color should reference PlaceholderColor" (#8530)
  • Github #7534 - "[Bug] Span Label with max lines and BreakMode breaks on large text with paragraph on Android." (#8471)
  • Github #7878 - "[Bug] Page not popped on iOS 13 FormSheet swipe down" (#7923)
  • Github #7924 - "[Bug] Setting CarouselView.CurrentItem to an item doesn't display that item" (#9854)
  • Github #8767 - "[Bug][iOS] SwipeView SwipeBehaviorOnInvoked RemainOpen issue on iOS" (#9664)
  • Github #8778 - "[Bug] SwipeViewItem handler invocation intermittent issue on iOS and Android" (#9664)
  • Github #8983 - "[Bug] SwipeView - bad responsiveness to touch" (#9664)
  • Github #9212 - "[Bug] XAMLC breaks if Binding contains apostrophe " ' " [V4.5.0 Pre Release 1]" (#9850)
  • Github #9305 - "[Bug] Swipe View BackgroundColor Issues" (#9726)
  • Github #9306 - "[Bug] [iOS] Cannot un-reveal swipe view items on iOS / Inconsistent swipe view behaviour" (#9664)
  • Github #9307 - "[Bug] OnAppearing does not fire after a UIModalPresentationStyle.FormSheet Page is Dismissed" (#7923)
  • Github #9322 - "[Bug] CarouselView's Position doesn't get updated to reflect ObservableCollection.Remove" (#9854)
  • Github #9401 - "[Bug] CarouselView don't respect ItemSpacing and/or PeekAreaInsets for new items" (#9854)
  • Github #9417 - "XF 4.5 pre2 crashes on Swipe GetSwipeItemSize " (#9464)
  • Github #9432 - "[Bug] When selected item is removed from CarouselView ItemsSource, CurrentItem is not changed" (#9854)
  • Github #9461 - "[Enhancement] SwipeView Pull To Close" (#9664)
  • Github #9588 - "[Bug] iOS: Frame inside SwipeView can't be swiped" (#9637)
  • Github #9646 - "[Android] SwipeView items don't fully remove themselves when unrevealed" (#9725)
  • Github #9647 - "[Android] SwipeView Shows on the Wrong Item in CollectionView" (#9725)
  • Github #9656 - "[Bug] Calls to Styles.CleanUpWeakReferences causes Exceptions." (#9921)
  • Github #9694 - "[Bug] Switch control OnColor property breaks application" (#9819)
  • Github #9734 - "[Bug] SwipeView in 4.5 works only first way swipped" (#9664)
  • Github #9735 - "[Bug] SwipeView broken in 4.5.0.356; creating huge number of overlapping SwipeItemViews on reveal" (#9725)
  • Github #9767 - "[Bug] [iOS] NavigationBar resetting TextColor to black at every change of BarBackgroundColor" (#9836)
  • Github #9771 - "[Bug] [UWP] Changing CarouselView Position does not change view" (#9854)
  • Github #9774 - "[Bug] Xamarin.Forms 4.5 breaks custom frame renderer shadow functionality on iOS" (#10023)
  • Github #9783 - "[Bug] DatePicker begin to cause Exception in version 4.5.0-282-pre4 and above in some situations" (#9820)
  • Github #9790 - "[Bug] Xamarin.Forms 4.5 ignores iOS status bar colour change" (#9836)
  • Github #9801 - "[Bug] Tab.Items.Clear() crashes on 4.5.0.356." (#9940)
  • Github #9952 - "[Bug] On().SetHideNavigationBarSeparator(true) does not work on Xamarin.Forms latest stable version (4.5.0.356) and latest preview version (4.6.379-pre1)" (#9972)

Additional fixes included in this release

  • "[UWP] Make sure to call UpdateInitialPosition on CarouselView" (#10041)
  • "[WPF] Dont set Slider.Value if it already matches control" (#9847)
  • "[X] register asm in sourceinfo for xamlc" (#10001)
  • "Disable EnableTypeInfoReflection for nugets when building for debug" (#9871)
  • "Fix SwipeItem cast issue on SwipeView" (#9907)
  • "Fixed mistake in StateTriggersExperimental verification" (#9889)

Monday, March 16, 2020 - Xamarin.Forms 4.5.0.396 (4.5.0 Service Release 1)

Issues Fixed

  • Github #1658 - "[macOS] GestureRecognizer on ListView Item not working" (#7781)
  • Github #8161 - " [Bug] On WPF ToolbarItem.IsEnabled = false does nothing" (#8612)
  • Github #8521 - "[Bug] CarouselView IsVisible=false than set to true not work on iOS" (#9654)
  • Github #9020 - "[Bug] CarouselView Android Can't Scroll Back when Last Item is Reached" (#9700)
  • Github #9171 - "[Bug] DisplayPromptAsync overload hurts usability" (#9749)
  • Github #9583 - "[Bug] iOS CarouselView size not changed if device orientation changed" (#9654)
  • Github #9609 - "[Bug] iOS CarouselView contents does not resize" (#9654)
  • Github #9666 - "[Bug][iOS] IndicatorView not visible when ItemSource of Carousel is set delayed (INotifyPropertyChanged)" (#9672)
  • Github #9738 - "[Enhancement] SwipeViewItem parent is null, shouldn't be" (#9743)
  • Github #9742 - "[Bug] MediaElement crashes on iOS when given a URL and device has no network" (#9746)
  • Github #9748 - "[Bug] Slider broken in 4.5.0.356 on macOS" (#9762)
  • Github #9782 - "IsVisible=false isn't working with Frames on iOS" (#9800)

Additional fixes included in this release

  • "[Android] Fix NRE when setting the VisualState on the default cell" (#9708)
  • "Don't Init DualScreenService on non duo device" (#9733)
  • "Ios 2017 compatible Xamarin.Forms.Platform.iOS" (#9760)

Wednesday, February 26, 2020 - Xamarin.Forms 4.5.0.356 (4.5.0)

Issues Fixed

  • Github #6804 - "[Bug] Shell SearchHandler - Search text getting lost on execute search" (#8101)
  • Github #8103 - "[Bug] Shell,iOS access a disposed object in Shell.TitleView" (#9505)
  • Github #8557 - "[Bug] Grouped header with incorrect size when use GridItemsLayout with two columns on the CollectionView" (#8563)
  • Github #8912 - "[Bug] Indicator.MaximumVisible property has no effect" (#9592)
  • Github #8913 - "[Bug][iOS] IndicatorView.IndicatorsShape=Square has no effect on iOS" (#9595)
  • Github #8933 - "[Bug] custom value for IndicatorView.IndicatorSize has no effect on iOS" (#9595)
  • Github #8992 - "[Bug] IndicatorView - ItemsSourceBy not showing up in Intellisense" (#9332)
  • Github #9014 - "[Bug] IndicatorView shows no indicators on UWP" (#9614)
  • Github #9196 - "[Bug] [iOS] CollectionView EmptyView causes the application to crash" (#9575)
  • Github #9329 - "[Bug] Xamarin.Forms SwipeView IsEnabled not working" (#9494)
  • Github #9371 - "[Bug] FontImage Icon fails on Android in certain situations" (#9506)
  • Github #9436 - "[Bug] [iOS] --optimize=experimental-xforms-product-type additional mtouch argument causes app crash" (#9505)
  • Github #9483 - "[Bug] iOS Shell - ToolbarItems not updating when using TabBar" (#9628)
  • Github #9499 - "[Bug][iOS] SwipeView MonoTouchException in iOS 12 in Forms 4.5-pre3" (#9501)
  • Github #9526 - "[Bug] macOS: 4.4->4.5 regression, labels are invisible (same TextColor as background)" (#9589)
  • Github #9696 - "Crash on Android with Xamari.Forms 4.5.0.282-pre4 Release builds while using DisplayActionSheet" (#9715)

Additional fixes included in this release

  • "[iOS] Fix NRE when not using template on CarouselView" (#9676)
  • "[REVERTED] Fix 8503, 8787 - text in Entry not immediately visible, or visible after IsVisible set to true" (#8536)
  • "Androidx bump to stable release packages" (#9594)
  • "Fix ios url images" (#9682)
  • "Propagate cleared shell elements correctly" (#9615)
  • "Remove duplicate NS 2.0 on vsmac" (#9612)
  • "Revert "Fix 8503, 8787 - text in Entry not immediately visible, or visible after IsVisible set to true"" (#9598)
  • Github #0001 - "Added check for null hinge in GetHinge()" (#9678)

Monday, February 10, 2020 - Xamarin.Forms 4.5.0.282-pre4 (4.5.0 Pre Release 4)

Additional fixes included in this release

  • "Fix TPV to adjust to native layout changes better" (#9445)
  • "Fix UWP volume, mediasource exception, android position" (#9452)
  • "Fixes TPV so it works anywhere on the screen" (#9427)
  • "TPV Additional Samples and event notification changes" (#9487)
  • "TPV API Adjustments" (#9477)

Wednesday, February 5, 2020 - Xamarin.Forms 4.5.0.266-pre3 (4.5.0 Pre Release 3)

Issues Fixed

  • Github #6784 - "[Bug] [Shell] [iOS] ShellItem.CurrentItem not set when selecting shell section aggregated in more tab" (#6786)
  • Github #7393 - "[Bug] CollectionView problems and crashes with IsGrouped="true"" (#8808)
  • Github #7500 - "[Bug] [Android] Async animations can cause hang if animations are disabled" (#8921)
  • Github #7904 - "[Bug] CarouselView doesn't implement the defined visual states" (#8785)
  • Github #7997 - "[Bug] CarouselView VisibleViews property is always null" (#8785)
  • Github #8203 - "CollectionView fires SelectionChanged x (number of items selected +1) times, while incrementing SelectedItems from 0 to number of items each time" (#8737)
  • Github #8586 - "[Bug] Tizen Tv - app crashes if collectionview is IsVisible is set to false" (#9367)
  • Github #8587 - "[Bug] Tizen Tv - App crashes if CollectionView.EmptyView is set while trying to set ItemsSource to null" (#9367)
  • Github #8634 - "[Bug] Android animation issue when device animations are turned off" (#8921)
  • Github #8671 - "[Bug] CarouselView - CurrentItem is not binded properly when switching pages programmatically" (#8785)
  • Github #8700 - "[Bug] [Android] CollectionView don't set BindingContext in Header" (#9361)
  • Github #8777 - "[Bug] SwipeView crash if Text not is set on SwipeItem" (#8822)
  • Github #8779 - "[Bug][iOS][Android] Entry in custom SwipeItemView can't gain focus" (#8832)
  • Github #8807 - "[Bug][Android] SwipeView rendering issues with multiple SwipeItems collection" (#8849)
  • Github #8899 - "Clearing CollectionView IsGrouped="True" crashes application iOS & UWP" (#9287)
  • Github #9007 - "[Bug] SwipeView inside SwipeView - not working" (#8653)
  • Github #9028 - "[Bug] The Swipe view does not call the command associated to it when tapped" (#9177)
  • Github #9030 - "[Bug] ClassNotFoundException when using snap points on API < 23" (#9378)
  • Github #9087 - "[Bug] Collection View items don't load bindable properties values inside OnElementChanged" (#9273)
  • Github #9092 - "[Bug] GTK: reenabling button doesn't work if page is a not-initial NavigationPage" (#9201)
  • Github #9108 - "iOS SwipeViewRenderer NullReferenceException When SwipeItem.Text is Null" (#8822)
  • Github #9271 - "SwipeItem Crash in iOS when Text = null" (#8822)
  • Github #9335 - "[Bug] Xamarin Forms crashes on UWP when inheriting from a base page" (#9350)
  • Github #9344 - "[Bug][Shell] Shell pass data navigation failure with Xaminals in 4.5-pre2" (#9348)
  • Github #9355 - "[Bug] System.ObjectDisposedException with Xamarin.Forms.Platform.Android.ScrollViewRenderer" (#9383)

Additional fixes included in this release

  • "[Android] Changes in SwipeView to avoid the use of APIs that require a specific API level" (#9175)
  • "[Android] Fix issue automatically closing the SwipeView when scrolling" (#8654)
  • "Bump WinUI Nuget version if you are using Min target >= 16299" (#9132)
  • "Centered text and icon in SwipeItem" (#8823)
  • "Embed templates" (#9225)
  • "Fix nuspec to copy xaml files from obj directory" (#9395)
  • "Fix TPV on UWP platform projects" (#9396)
  • "Fix UWP Nuspec to copy correct NS version" (#9388)
  • "Make create shell table view controller virtual" (#9327)
  • "Move CarouselViewRenderer scrolled overrides to listener" (#9414)
  • "Propagate BindingContext to ItemsLayout" (#9221)
  • "Remove uses of deprecated KeyWindow" (#9334)
  • "TPV Initial Project Setup" (#9418)
  • Github #8753 - "[Bug] Assign custom SwipeItems in the SwipeView" (#8757)

Wednesday, January 22, 2020 - Xamarin.Forms 4.5.0.187-pre2 (4.5.0 Pre Release 2)

Issues Fixed

  • Github #2172 - "Height of Entry with data binding incorrect on UWP when Entry in ScrollView in Grid" (#8214)
  • Github #2678 - "StyleSheets - Updating StyleClass at runtime has no effect" (#9157)
  • Github #5168 - "[Core] Incorrect increments in Stepper" (#7383)
  • Github #5596 - "[iOS] Previous page's toolbar item being grayed out when canceling swipe to previous page then navigating back." (#8454)
  • Github #5711 - "Layout issue with Entry" (#8214)
  • Github #7862 - "[Bug] Live Unit Testing Fails Build" (#7925)
  • Github #7992 - "Datepicker is not opened when we call Datepicker.Focus() in UWP" (#8056)
  • Github #8294 - "[Bug] UIStatusBarStyle does not appear to change when device is in dark mode" (#8791)
  • Github #8781 - "[Bug][iOS] SwipeViewItem rendering issue on iOS" (#8828)
  • Github #8782 - "[Bug][iOS][Android] SwipeViewItems cut off on one or more sides" (#8824)
  • Github #8973 - "[Bug] SwipeView - no animation when revealing CollectionView items " (#8987)
  • Github #9159 - "[Bug] CarouselView IsBounceEnabled=False has no effect on Android" (#9160)

Additional fixes included in this release

  • "[Android, iOS] Improve the swipe threshold used in Execute Mode" (#9217)
  • "[android/ios] improve perf when not using Application.Properties" (#8887)
  • "[android] remove the Anticipator for 4.5.0 and master" (#9226)
  • "[Core] performance improvements around bindings" (#9114)
  • "Apply cecil fixes to make packages 2017 compatible" (#9145)
  • "The great Androidx IF Def'ing of 2019" (#8898)

Monday, January 13, 2020 - Xamarin.Forms 4.5.0.142-pre1 (4.5.0 Pre Release 1)

Issues Fixed

  • Github #2136/Bugzilla 45723 - "Entry / Editor and a Button. Tapping the button dismisses the keyboard" (#8740)
  • Github #3332 - "[Android] Memory leak in MasterDetailPage" (#8745)
  • Github #3742 - "Memory leak in the Navigation Page on Android" (#8745)
  • Github #3798 - "[Android] SeparatorColor of ListView is NOT updated dynamically" (#8085)
  • Github #3959 - "[UWP] ListView GroupHeaderTemplate Has minimum height" (#8010)
  • Github #4606 - "[Android] ImageButton on android is not clipping view to corner radius" (#7723)
  • Github #4744 - "forms in UWP show empty button for DisplayActionSheet" (#8445)
  • Github #4854 - "[macOS] Visual glitch when exiting the full screen with ScrollViewer" (#8086)
  • Github #4880 - "Text not shown as it should Xamarin.Forms.GTK" (#8473)
  • Github #5108 - "Frame with a shadow on iOS adds a shadow to the contents" (#7518)
  • Github #5367 - "Crash assigning excessively long text to Editor with MaxLength property set" (#8052)
  • Github #5749 - "Disable horizontal scroll in the custom listview in android" (#8105)
  • Github #5910 - "[Bug] IsClippedToBounds doesn't update clip rectangle when maximizing WPF window" (#8195)
  • Github #6384 - "[Bug] [iOS] content page in tabbed page not showing inside shell tab" (#7532)
  • Github #6556 - "[Bug] Button.CornerRadius doesn't work on WPF" (#7895)
  • Github #6693 - "[Bug] [WPF] ViewRenderer does not work properly with FrameworkElement derived native controls " (#8357)
  • Github #6905 - "[Bug] XAML parser cannot parse nested markup extension as positional argument" (#8980)
  • Github #6996 - "[Bug] Color of FontImageSource dynamic resource is useless" (#8063)
  • Github #7181 - "[Bug] Cannot update ToolbarItem text and icon" (#8254)
  • Github #7323 - "[Xamarin.iOS] Deprecated API Usage UIWebView" (#8001)
  • Github #7396 - "[Bug] Shell: Setting Shell.BackgroundColor overrides all colors of TabBar" (#7962)
  • Github #7400 - "[Bug] [Android] MainPage not changing in OnResume" (#7477)
  • Github #7416 - "[Bug] Crash In ShellSectionRootHeader with scrollable top tabs" (#7884)
  • Github #7709 - "[Bug] On android, not showing keyboard when changing placeholder in entry focused event" (#7984)
  • Github #7772 - "[Bug] Device.Idiom reports TargetIdiom.Phone for Amazon Fire TV Stick 4K" (#7933)
  • Github #7995 - "[Bug] WPF ListViewRenderer fails on item tapped with empty item source" (#8223)
  • Github #8087 - "[XAMARIN-FORMS-WPF] View doesn't render when set IsClippedToBounds to true" (#8195)
  • Github #8156 - "[Bug] [iOS] Label with HTML does not replace Umlaut characters properly" (#8265)
  • Github #8198 - "[Bug] ScrollView at CollectionView at RefreshView always leads to Pull-To-Refresh" (#8224)
  • Github #8211 - "[Bug] Shell throws NullRef if improperly configured" (#8250)
  • Github #8278 - "[Bug] StackOverflowException in UWP ListViewRenderer" (#8299)
  • Github #8345 - "[Bug] CollectionView ItemSpacing does not affect the Item spacing on iOS" (#8872)
  • Github #8469 - "[Bug] FontImageSourse doesn't work on macOS" (#8590)
  • Github #8593 - "[Bug] FontImageSourse doesn't work on GTK" (#8627)
  • Github #8633 - "[Bug] NuGet version conflict between Xamarin.Froms.Maps and Microsoft.AppCenter.Push" (#7660)
  • Github #9070 - "[Bug] UITabBar.Appearance.SelectedImageTintColor not working in Xamarin Forms project" (#9082)

Additional fixes included in this release

  • "[Android] Fix some issues in UITests" (#8764)
  • "[Android] Fix some views dispose" (#8703)
  • "[Android] ListViewRenderer - Better dispose" (#8705)
  • "[Android] MasterDetailPageRenderer - Add guard and add missing unsubscribe" (#8704)
  • "[iOS] Reduce casting and repeat math during BoxView drawing" (#9008)
  • "[platform] improve perf of PropertyChangedEventArgsExtensions" (#9084)
  • "[previewer] removed empty ItemsSource attribute from toolbox snippets" (#8379)
  • "[REVERTED] Return all visual elements needed" (#8100)
  • "[Xaml] Throw XamlParseException in MarkupExpressionParser.GetNextPiece" (#8447)
  • "[XamlC] Dispose assembly resolver constructed by XamlCTask" (#8397)
  • "Fix cross-thread exception when finalizing ButtonRenderer" (#9010)
  • "Fix reflection call on UWP" (#8636)
  • "Stop Frame shadow from blocking user input on iOS" (#8991)
  • "Stop the linker from killing off the Deserializer" (#8962)
  • "Use correct reference frame for gesture origin recognition" (#6615)
  • "WPF GTK Set flags" (#8446)

Known Issues

  • Github #10093 - "[Bug] iOS NavigationBar not applying gradient in custom renderer anymore (via SetBackgroundImage)."
  • Github #9980 - "Xamarin.Forms iOS VS Windows Previewer Errors on 4.5.0.396+"
  • Github #9775 - "[Bug] Xamarin.Forms 4.5 custom navigation renderer doesn't set font"
  • Github #9765 - "[Bug] UINavigationBar.Appearance.BarTintColor not working when update 4.5 version"
  • Github #9756 - "[Bug] [UWP] DisplayAlert renders all controls disabled on a page"
  • Github #9755 - "Issue updating the package to 4.5.0.356 (Forms with Map)"
  • Github #9606 - "[Bug] [UWP] DisplayAlertAsync doesn't work in 4.5 pre 4"
  • Github #9555 - "[Bug][iOS] Applying an Effect to Frame adds a shadow "
  • Github #9456 - "[Bug] navPage.SetHideNavigationBarSeparator(true) no longer works."
  • Github #9339 - "[Bug][Android] SearchBar rendering issue in 4.5-pre2 on API 28"
  • Github #9190 - "[Bug] Embedded Fonts Not Recognized"
  • Github #8567 - "[Bug, iOS] Frame shadow layer not properly removed "

Breaking Changes

  • Github #4606 - "[Android] ImageButton on android is not clipping view to corner radius" (#7723)

Namespace Xamarin.Forms

Type Changed: Xamarin.Forms.CarouselView

Removed field:

public static const string VisibleItemVisualState = "VisibleItem";

Modified properties:

-public System.Collections.Generic.List<View> VisibleViews { get; }
+public System.Collections.ObjectModel.ObservableCollection<View> VisibleViews { get; }

Removed methods:

public void SetCurrentItem (object item);

Type Changed: Xamarin.Forms.IImageElement

Removed method:

public virtual void OnImageSourcesSourceChanged (object sender, System.EventArgs e);

Type Changed: Xamarin.Forms.IndicatorView

Removed field:

public static BindableProperty ItemsSourceByProperty;

Removed methods:

public static VisualElement GetItemsSourceBy (BindableObject bindable);
public static void SetItemsSourceBy (BindableObject bindable, VisualElement value);

Type Changed: Xamarin.Forms.Page

Modified methods:

 public System.Threading.Tasks.Task<string> DisplayPromptAsync (string title, string message, string accept--- = "OK"---, string cancel--- = "Cancel"---, string placeholder--- = "NULL"---, int maxLength--- = -1---, Keyboard keyboard--- = NULL---)

Type Changed: Xamarin.Forms.Shell

Modified methods:

 public System.Threading.Tasks.Task GoToAsync (ShellNavigationState state, bool animate--- = true---)

Namespace Xamarin.Forms.Internals

Type Changed: Xamarin.Forms.Internals.Profile

Removed methods:

public static void FrameBegin (string name, string id, int line);
public static void FrameEnd ();

Type Changed: Xamarin.Forms.Internals.PromptArguments

Modified constructors:

 public PromptArguments (string title, string message, string accept--- = "OK"---, string cancel--- = "Cancel"---, string placeholder--- = "NULL"---, int maxLength--- = -1---, Xamarin.Forms.Keyboard keyboard--- = NULL---)

Namespace Xamarin.Forms.Platform.Android

Type Changed: Xamarin.Forms.Platform.Android.AccessibilityExtensions

Removed method:

public static string SetNavigationContentDescription (this Android.Support.V7.Widget.Toolbar Control, Xamarin.Forms.Element Element, string _defaultNavigationContentDescription);

Type Changed: Xamarin.Forms.Platform.Android.BottomNavigationViewUtils

Removed methods:

public static Android.Support.Design.Widget.BottomSheetDialog CreateMoreBottomSheet (System.Action<System.Int32,Android.Support.Design.Widget.BottomSheetDialog> selectCallback, Android.Content.Context context, System.Collections.Generic.List<System.ValueTuple<System.String,Xamarin.Forms.ImageSource,System.Boolean>> items);
public static void SetShiftMode (this Android.Support.Design.Widget.BottomNavigationView bottomNavigationView, bool enableShiftMode, bool enableItemShiftMode);

Type Changed: Xamarin.Forms.Platform.Android.CarouselViewRenderer

Removed methods:

public override void OnScrollStateChanged (int state);

Type Changed: Xamarin.Forms.Platform.Android.PageExtensions

Removed methods:

[Obsolete ("ContentPage.CreateFragment() is obsolete as of version 3.2. Please use ContentPage.CreateSupportFragment() instead.")]
public static Android.App.Fragment CreateFragment (this Xamarin.Forms.ContentPage view, Android.Content.Context context);

Type Changed: Xamarin.Forms.Platform.Android.Resource

Type Changed: Xamarin.Forms.Platform.Android.Resource.Drawable

Removed fields:

public static int avd_hide_password_1;
public static int avd_hide_password_2;
public static int avd_hide_password_3;
public static int avd_show_password_1;
public static int avd_show_password_2;
public static int avd_show_password_3;

Type Changed: Xamarin.Forms.Platform.Android.SwipeViewRenderer

Modified methods:

-public override bool OnInterceptTouchEvent (Android.Views.MotionEvent ev)
+public override bool OnInterceptTouchEvent (Android.Views.MotionEvent e)

Deprecations

API Changes

See all API Changes here.

  • "Custom/Embedded fonts" (#6013)
  • Github #7135 - "[Enhancement] Add platform specific property to set the iOS UITabBar Translucent property to false" (#7315)
  • Github #7500 - "[Bug] [Android] Async animations can cause hang if animations are disabled" (#8921) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • Github #7667 - "Make SetupLayer on FrameRenderer virtual" (#7871)
  • Github #9171 - "[Bug] DisplayPromptAsync overload hurts usability" (#9749) (added in 4.5.0.396 (4.5.0 Service Release 1))

Blogs

Xamarin Blogs

Thank you

Thank you to our community for helping to make Xamarin.Forms even better!

This release, we received amazing contributions from these individuals. Give them a big round of applause!

Author Commit PR
Akihiko Odaki (@akihikodaki) Add a missing '}' in Xamarin.Forms.Xaml.UnitTests/Issues/Bz24485.xaml (#8448) #8448
Akihiko Odaki (@akihikodaki) [Xaml] Throw XamlParseException in MarkupExpressionParser.GetNextPiece (#8447) #8447
Akihiko Odaki (@akihikodaki) [XamlC] Support variance (#8535) #8535
Akihiko Odaki (@akihikodaki) [Xaml[C]] Accept prefixed property names of markup extensions (#5186) #5186
Akihiko Odaki (@akihikodaki) [XamlC] Dispose assembly resolver constructed by XamlCTask (#8397) #8397
Akihiko Odaki (@akihikodaki) [Xaml] Create value from positional argument text of markup extension (#8980) #8980
Alexander Olshansky (@NordAlex) Fix 7709 Fix showing keyboard when changing placeholder in entry focused event (#7984) #7984
Andrei (@AndreiMisiukevich) [Enhancement] Add platform specific property to handle iOS UITabBar Translucent property (#7315) #7315
Andrei (@AndreiMisiukevich) fixes https://github.com/xamarin/Xamarin.Forms/issues/9499 (#9501) #9501
Andrei (@AndreiMisiukevich) fixes https://github.com/xamarin/Xamarin.Forms/issues/9526 (#9589) fixes #9526 #9589
Andrei (@AndreiMisiukevich) fixes #9748 (#9762) #9762
Andrei (@AndreiMisiukevich) fixes #9782 (#9800) #9800
Artem (@artemious7) fix for #8564 (#9320) fixes #8564 #9320
Artem (@artemious7) fixes #6679 [Bug] WebView UWP not displaying (#9390) #9390
beeradmoore (@beeradmoore) UIStatusBarStyle now changes correctly when a device is in dark mode (#8791) #8791
Bob Weinand (@bwoebi) Use correct reference frame for gesture origin recognition (#6615) #6615
Brian Macomber (@bmacombe) Typo Fix and change to nameof (#8942) fixes #8935 #8942
Brian Macomber (@bmacombe) Fixes 7992 Changes UWP DatePicker to show the picker flyout on DatePickerFocus() (#8056) #8056
Brian Macomber (@bmacombe) [UWP] Attempt to resolve entry on UWP not correctly calculating the correct height when in a scroll view (#8214) #8214
Chase Marsh (@ChaseMarsh) Fix 6693 - [Bug] [WPF] ViewRenderer does not work properly with FrameworkElement derived native controls (#8357) #8357
Christopher Dresel (@Dresel) Use the MoreNavigationController DidShowViewController callback for shell sections (#6786) #6786
CleanCodeDeveloper (@CleanCodeDeveloper) [UWP] Enables usage of font image source for bottom bar tabs (#8354) #8354
Clifford Agius (@CliffAgius) Fixed the rounding issue when the stepper value is incremented. (#7383) #7383
Daniel Gatto (@dmariogatto) Fix text cleared on search execute (#8101) fixes #6804 #8101
David Eisler (@EislerDavid) Add null check in UpdateFlowDirection (#9148) #9148
Durgesh Khandal (@techduggu) Fixed 5680 - Added method to force value coercion (#8097) #8097
Durgesh Khandal (@techduggu) Fixed - 5830 - Updated access modifier for EntryCellTableViewCell (#8286) fixes #5830 #8286
Durgesh Khandal (@techduggu) Fixed 5749 - Issue with disabling horizontal scroll on Android (#8105) #8105
Durgesh Khandal (@techduggu) Fix #3798 - [Android] SeparatorColor of ListView is NOT updated dynamically (#8085) fixes #3798 #8085
Durgesh Khandal (@techduggu) Fixed 8211 - Handled NullRef in Shell if incorrectly-configured (#8250) #8250
Felipe Baltazar (@felipebaltazar) Fix Bug 7396 - Shell: Setting Shell.BackgroundColor overrides all colors of TabBar (#7962) #7962
Felipe Baltazar (@felipebaltazar) Fixe issue 5367 Crash assigning excessively long text to Editor with MaxLength property set (#8052) fixes #5367 #8052
Felipe Baltazar (@felipebaltazar) Fix 7181 [Bug] Cannot update ToolbarItem text and icon (#8254) fixes #7181 #8254
Glenn Versweyveld (@Depechie) Let UICollectionViewCell handle state itself (#7884) #7884
Glenn Versweyveld (@Depechie) Add ListViewHeaderItemMinHeight override in UWP resources.xaml (#8010) #8010
Glenn Versweyveld (@Depechie) Check for ValueType items to perform equals (#8299) #8299
Glenn Versweyveld (@Depechie) Return all visual elements needed (#8100) fixes #7027 #8100
Joe Manke (@jcmanke) [Android Maps] Check for location permissions when IsShowingUser=true (#7282) fixes #4691 #7282
Joe Manke (@jcmanke) [iOS] Add UpdateMode platform-specific to DatePicker and TimePicker (#8048) #8048
Johann Weiher (@Suplanus) macOS: Fixed IsPresented PopOver (#8312) #8312
Jon Robinson Levy (@WayaFlyfeather) Fix 8784 [UWP] Avoid Placeholder text overlapping Search Icon in SearchBar (#9150) fixes #8784 #9150
Jon Robinson Levy (@WayaFlyfeather) Fix 8503, 8787 - text in Entry not immediately visible, or visible after IsVisible set to true (#8536) #8536
Jonathan Goldberger (@jgold6) [Android] Visual Material Underline color should match placeholder color (#8530) fixes #6187 #8530
Kangho Hur (@rookiejava) [Tizen] Supports Custom/Embedded and System fonts (#9138) #9138
Kangho Hur (@rookiejava) [Tizen] MediaElement control support (#9634) #9634
Kevin Petit (@kvpt) Call the application OnResume, on Android Resume instead of Restart. (#7477) Fixes #7400 #7477
Kevin Petit (@kvpt) [Android] Better ListViewRenderer dispose (#8705) #8705
Kevin Petit (@kvpt) [Android] Add guard and add missing unsubscribe on MasterDetailPageRenderer (#8704) #8704
Kevin Petit (@kvpt) [Android] Fix various memory leaks (#8745) fixes #3332 fixes #3742 #8745
Kevin Petit (@kvpt) [Android] Fix some issues in UITests (#8764) #8764
Kevin Petit (@kvpt) [Android] Fix view dispose (#8703) #8703
Kevin Petit (@kvpt) [Android] Refresh main page on activity resume if main page has been changed when activity was paused (#9257) fixes #9093 fixes #5236 #9257
Kevin Petit (@kvpt) [Android] Add dispose check to prevent crash (#9383) fixes #9355 #9383
Kevin Petit (@kvpt) [Android] Properly unsubscribe ToolbarItem on removal (#9485) fixes #9419 #9485
Konrad Müller (@krdmllr) [macOS] Implement slider min/max/thumb color (#8098) #8098
Konrad Müller (@krdmllr) [WPF] Frame: Add shadow and padding (#7964) #7964
Leo Mehlig (@leoMehlig) Fixes Bug with TabbedPage pushed onto Shell (#7532) fixes #6384 #7532
MagicAndre1981 (@MagicAndre1981) possible fix for Issue 7772 (#7933) #7933
Mateus Luiz Camilo (@MathewLC) [Android] Prevent to breaking when spans have paragraph ('\n' character) (#8471) fixes #7534 #8471
melimion (@melimion) Scrolled event implemented (#8197) #8197
melimion (@melimion) Fix Button.CornerRadius doesn't work on WPF (#7895) #7895
melimion (@melimion) WPF Implement editor placeholder (#8504) #8504
melimion (@melimion) macOS toolbar improvements (#8146) #8146
melimion (@melimion) [WPF] Fix ToolbarItem.IsEnabled = false does nothing (#8612) #8612
melimion (@melimion) [macOS] Fix GestureRecognizer on ListView Item not working (#7781) fixes #1658 #7781
Mohamed CHOUCHANE (@mohachouch) [WPF] View doesn't render when set IsClippedToBounds to true (#8195) #8195
Oliver Brown (@GalaxiaGuy) [iOS] [macOS] Fix HTML string encoding (#8265) #8265
Oliver Brown (@GalaxiaGuy) [macOS] Add character spacing to button and label (#8206) #8206
Pieter Nijs (@PieEatingNinjas) iOS: Frame with HasShadow set to true and BackgroundColor alpha < 1 casts shadow on all child views (#7518) #7518
Ravinder Jangra (@ravinderjangra) Fix back icon color for the navigation page (#7365) fixes #5177 #7365
Sanya Andreichuk (@sanyandreichuk) Force a redraw for right toolbar items. (#8454) #8454
Sławomir Kulików (@slakul) [macOS] Visual glitch when exiting the full screen with ScrollViewer (#8086) fixes #4854 #8086
sung-su.kim (@sung-su) Fix 8586 8587 - [Tizen] Added guard for CollectionView (#9367) fixes #8586 #8587 #9367
Todd (@thenderson21) Fix to double escaping. (#8473) #8473
Tushar Koshti (@07101994) [Core] Removed null values from the DisplayActionSheet (#8445) fixes #4744 #8445
VladislavAntonyuk (@VladislavAntonyuk) [Bug] WPF ListViewRenderer fails on item tapped with empty item source #7995 (#8223) #8223
VladislavAntonyuk (@VladislavAntonyuk) [Bug] FontImageSourse doesn't work on macOS (#8590) fixes #8469 #8590
VladislavAntonyuk (@VladislavAntonyuk) WPF GTK Set flags (#8446) #8446
VladislavAntonyuk (@VladislavAntonyuk) [Bug] FontImageSourse doesn't work on GTK fixes #8593 (#8627) #8627
Youssef Victor (@Youssef1313) Remove private modifier (#8631) #8631
Yuriy Holembyovskyy (@yurkinh) fixes #9952 On().SetHideNavigationBarSeparator(true) does not work on Xamarin.Forms latest stable version (4.5.0.356) (#9972) #9972
Yuriy Holembyovskyy (@yurkinh) Add MaskToBounds property to clip a layer’s contents (#10023) fixes #9265, #9774 #10023
z3ut (@z3ut) [GTK] Fix button shrinking (#9201) fixes #9092 #9201

Feedback

Your feedback is important to us. If there are any problems with this release, check the Xamarin.Forms Forums and GitHub for existing issues. Report new issues and suggestions on GitHub.

Open Source

Xamarin.Forms 4.5.0 is based on the open-source Xamarin.Forms repository: