Share via


Xamarin.Forms 4.5.0.356 (4.5.0) 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 (PREVIEW!)

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

  • "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 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)
  • "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 #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) (#Shipped) (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 #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 #8902 - "[BUG][iOS] CarouselView Layout on orientation change" (#9204) (#Shipped) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))
  • Github #8911 - "[Bug] IndicatorView isn't centered by default on Android" (#9343) (#Shipped) (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) (#Shipped) (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 #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 #9436 - "[Bug] [iOS] --optimize=experimental-xforms-product-type additional mtouch argument causes app crash" (#9505) (added in 4.5.0.356 (4.5.0))

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 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 #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))

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))
  • Github #4606 - "[Android] ImageButton on android is not clipping view to corner radius" (#7723)
  • Github #8633 - "[Bug] NuGet version conflict between Xamarin.Froms.Maps and Microsoft.AppCenter.Push" (#7660)

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 #4691 - "[Enhancement] SecurityException from Forms.Maps with explicit target SDK" (#7282)
  • 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

SwipeView

  • "[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))
  • Github #8753 - "[Bug] Assign custom SwipeItems in the SwipeView" (#8757) (added in 4.5.0.266-pre3 (4.5.0 Pre Release 3))
  • 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 #9329 - "[Bug] Xamarin.Forms SwipeView IsEnabled not working" (#9494) (added in 4.5.0.356 (4.5.0))
  • Github #9499 - "[Bug][iOS] SwipeView MonoTouchException in iOS 12 in Forms 4.5-pre3" (#9501) (added in 4.5.0.356 (4.5.0))

CarouselView

  • "[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)
  • "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 #7323 - "[Xamarin.iOS] Deprecated API Usage UIWebView" (#8001)
  • Github #7904 - "[Bug] CarouselView doesn't implement the defined visual states" (#8785) (#Shipped) (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 #8902 - "[BUG][iOS] CarouselView Layout on orientation change" (#9204) (#Shipped) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))
  • Github #8913 - "[Bug][iOS] IndicatorView.IndicatorsShape=Square has no effect on iOS" (#9595) (#Shipped) (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 #9159 - "[Bug] CarouselView IsBounceEnabled=False has no effect on Android" (#9160) (added in 4.5.0.187-pre2 (4.5.0 Pre Release 2))

UWP Shell

  • "[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

  • "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))

MediaElement

  • "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))

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

  • Github #8911 - "[Bug] IndicatorView isn't centered by default on Android" (#9343) (#Shipped) (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))

Release History

  • 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, 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 #8503 - "[Bug] Text is not visible on Entry element after animation finished" (#8536)
  • Github #8557 - "[Bug] Grouped header with incorrect size when use GridItemsLayout with two columns on the CollectionView" (#8563)
  • Github #8787 - "[Bug] Entry text initially invisible on UWP" (#8536)
  • Github #8912 - "[Bug] Indicator.MaximumVisible property has no effect" (#9592)
  • Github #8913 - "[Bug][iOS] IndicatorView.IndicatorsShape=Square has no effect on iOS" (#9595) (#Shipped)
  • Github #8933 - "[Bug] custom value for IndicatorView.IndicatorSize has no effect on iOS" (#9595) (#Shipped)
  • 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)
  • "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) (#Shipped)
  • Github #7997 - "[Bug] CarouselView VisibleViews property is always null" (#8785) (#Shipped)
  • 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 #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) (#Shipped)
  • 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 #8911 - "[Bug] IndicatorView isn't centered by default on Android" (#9343) (#Shipped)
  • Github #8934 - "[Bug] Last Indicator in IndicatorView has smaller size on Android" (#9343) (#Shipped)
  • 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 #8902 - "[BUG][iOS] CarouselView Layout on orientation change" (#9204) (#Shipped)
  • 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 #9696 - "Crash on Android with Xamari.Forms 4.5.0.282-pre4 Release builds while using DisplayActionSheet"
  • 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 #9519 - "[Bug] Frame's shadow in Absolute Layout not hidden when IsVisible="False" on iOS."
  • Github #9456 - "[Bug] navPage.SetHideNavigationBarSeparator(true) no longer works."
  • Github #9417 - "XF 4.5 pre2 crashes on Swipe GetSwipeItemSize "
  • Github #9339 - "[Bug][Android] SearchBar rendering issue in 4.5-pre2 on API 28"
  • Github #9305 - "[Bug] Swipe View BackgroundColor Issues"
  • Github #9190 - "[Bug] Embedded Fonts Not Recognized"

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; }

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.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 ();

Namespace Xamarin.Forms.Platform.Android

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

Removed method:

public override void OnScrollStateChanged (int state);

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

Removed method:

[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)

Namespace Xamarin.Forms.Platform.iOS

Type Changed: Xamarin.Forms.Platform.iOS.ItemsViewController`1

Removed fields:

public static const int FooterTag;
public static const int HeaderTag;

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)

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
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
Kangho Hur (@rookiejava) [Tizen] Supports Custom/Embedded and System fonts (#9138) #9138
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
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
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
z3ut (@z3ut) [GTK] Fix button shrinking (#9201) fixes #9092 #9201

Feedback welcome

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: