Xamarin.Forms 4.0.0.482894 (4.0.0 Service Release 2) Release Notes

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

What's New in this Release

  • "[Material] [Tizen] Adds Xamarin.Forms.Material.Tizen for Visual" (#5453) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • "[Shell] Rename ShellItem" (#5624) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • "[Shell][Tizen] Add the ShellRenderer on Tizen" (#5818) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #1661 - "[Enhancement] Android: WebView - Control over Zoom controls" (#3607) (added in 4.0.0.232914-pre6 (4.0.0 Pre Release 6))
  • Github #2415 - "Xamarin.Forms.Shell Spec" (#6086) (added in 4.0.0.425677 (4.0.0))
  • Github #2789 - "Improved A11y Support - TabIndex" (#3989) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #3478 - "Allow TintColor and UnselectedItemTintColor as platform-specifics" (#4899) (added in 4.0.0.232914-pre6 (4.0.0 Pre Release 6))
  • Github #4758 - "[Shell] Tabs came back" (#5896) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #4769 - "[Shell] URI based navigation missing methods" (#5852) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #5015 - "[Enhancement] BindableObject perf improvements" (#5324) (added in 4.0.0.232914-pre6 (4.0.0 Pre Release 6))
  • Github #5308 - "[Enhancement] Remove Xamarin.Forms.Build from repository" (#6068) (added in 4.0.0.482894 (4.0.0 Service Release 2))
  • Github #5310 - "Ability to hide HomeIndicator from iPhone X, XR, XS on given page" (#5717) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #5724 - "[Spec] Use Android Fast Renderers by Default" (#5926) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #5790 - "[Shell] Uri Navigation Spec when using GoToAsync" (#5852) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))

Notable Changes

Shell

Shell introduces a simplified way to express the structure and navigation for your application in a single file. No more dealing with different page types to handle setting up complicated navigation. It supports flyout menu, bottom tabs, top tabs, and an integrated search handler. A new URI based navigation routing system has been implemented in addition to the existing push/pop navigation service. Now you can route to any point in your application, no matter how deep, and handle navigation events to perform custom logic such as canceling the back action.

If you are updating from a pre-release, take note of a few changes:

  • Route, RouteHost, and RouteScheme are no longer used and will result in a compile error. Please remove them.
  • Styles that began with "Shell" have been renamed to eliminate redundancy. For example, "Shell.ShellBackgroundColor" is now "Shell.BackgroundColor".
  • We have added convenient alias names for Shell elements to better express your intentions: * ShellItem can now also be called FlyoutItem or TabBar, depending on your usage. * Using TabBar will also set the FlyoutBehavior to disabled. * ShellSection can now also be called Tab.

For more information about Shell check out the latest documentation and view the Tailwind Traders mobile reference app. Visual Studio 2019 on Windows and Mac now ship with a new Shell template for you.

  • "[Android] _shellContext.Shell.FlyoutIcon was null, crashing AutomationProperties.GetHelpText..." (#6165) (added in 4.0.0.425677 (4.0.0))
  • "[Android] ContextCompat.getColor if API < 23" (#5450) (added in 4.0.0.232914-pre6 (4.0.0 Pre Release 6))
  • "[iOS] add DesignerFlyoutRenderer when running as previewer" (#6119) (added in 4.0.0.425677 (4.0.0))
  • "[iOS] Shell _headerView can apparently be null" (#6164) (added in 4.0.0.425677 (4.0.0))
  • "[Shell] Add AllowMultiple=true to QueryPropertyAttribute" (#5180) (added in 4.0.0.232914-pre6 (4.0.0 Pre Release 6))
  • "[Shell] Add Tab bar and auto promote tabs to nearest TabBar" (#6023) (added in 4.0.0.425677 (4.0.0))
  • "[Shell] Rename CurrentShell to Current" (#5761) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • "[Shell] Rename ShellItem" (#5624) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • "[Shell] Routing: fix infinite loops and remove public apis" (#5954) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • "[Shell][Tizen] Add the ShellRenderer on Tizen" (#5818) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • "remove route params from shell" (#6081) (added in 4.0.0.425677 (4.0.0))
  • "remove safe area from inset" (#6169) (added in 4.0.0.425677 (4.0.0))
  • "return from designer earlier" (#6102) (added in 4.0.0.425677 (4.0.0))
  • Github #2415 - "Xamarin.Forms.Shell Spec" (#6086) (added in 4.0.0.425677 (4.0.0))
  • Github #3124 - "[Shell] 3bar.png missing for the flyout menu hamburger" (#5567) (#5961) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • Github #3124 - "[Shell] 3bar.png missing for the flyout menu hamburger" (#5567) (#5961) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #3125 - "[Shell] Search bar on iOS is dark and black text is illegible" (#5810) (added in 4.0.0.425677 (4.0.0))
  • Github #3207 - "Replace all occurrences of FileImageSource with ImageSource" (#4915) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #3875 - "[Shell] Flyout menu items should start below my header, no matter how tall" (#6109) (added in 4.0.0.425677 (4.0.0))
  • Github #4399 - "[Shell] MenuItems outside of collection render differently" (#6117) (added in 4.0.0.425677 (4.0.0))
  • Github #4684 - "Xamarin 4.0.0.8055-pre1 Shell Crashes when navigating too quickly" (#5671) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • Github #4758 - "[Shell] Tabs came back" (#5896) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #4766 - "[Shell] Cannot set hamburger button asset" (#5567) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • Github #4769 - "[Shell] URI based navigation missing methods" (#5852) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #4872 - "[Shell] CSS is not working when referencing CSS-file in App.xaml" (#6082) (added in 4.0.0.425677 (4.0.0))
  • Github #5131 - "Unable to set tab or focus order on Shell flyout menu items" (#5930) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #5132 - "Unable to specify automation properties on the hamburger / flyout icon" (#5758) (added in 4.0.0.425677 (4.0.0))
  • Github #5216 - "[Shell] Flyout menu item SelectionChanged navigation too laggy." (#6066) (added in 4.0.0.425677 (4.0.0))
  • Github #5466 - "[Shell] Cannot navigate to a route" (#5564) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • Github #5501 - "Binding on Shell.FlyoutHeaderTemplate not work" (#5934) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #5504 - "[Shell] DisplayAlert crashes" (#5491) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • Github #5705 - "[Shell] SearchHandler BindingContext not inherited from page" (#5730) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #5706 - "[Shell] SearchHandler.Query property value isn't passed via CommandParameter" (#5776) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #5712 - "[Shell]SearchHandler should include SelectedItem property" (#5775) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #5734 - "[Shell] BackButtonBehavior BindingContext not inherited from page" (#5743) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #5870 - "[Shell] Shell class has an unused GroupHeaderTemplate bindable property" (#5906) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #5908 - "Xamarin.Forms Previewer : NullReference Exception with Shell" (#5955) (added in 4.0.0.425677 (4.0.0))
  • Github #5924 - "[Bug] The type SearchBoxVisiblity is misspelled" (#5931) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #5927 - "[Bug] Shell content padding on iOS default" (#5990) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #5940 - "[Bug] Shell treats Show/Hide Flyout Differently from TabBar and NavBar" (#6173) (added in 4.0.0.425677 (4.0.0))
  • Github #6016 - "[Bug] (Shell, Android) Shell.Current.GoToAsync 2 levels from root causes root page so flicker in at transition" (#6025) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #6197 - "[Shell, Android] crash on Android 5.0" (#6198) (added in 4.0.0.482894 (4.0.0 Service Release 2))

Visual

  • "[Android] rollback IButtonLayoutRenderer to match 3.6" (#6290) (added in 4.0.0.482894 (4.0.0 Service Release 2))
  • "[Material] [Tizen] Adds Xamarin.Forms.Material.Tizen for Visual" (#5453) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • "Centralize Theme Wrapper and fix sandbox to work with previewer" (#5495) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • Github #3207 - "Replace all occurrences of FileImageSource with ImageSource" (#4915) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #5308 - "[Enhancement] Remove Xamarin.Forms.Build from repository" (#6068) (added in 4.0.0.482894 (4.0.0 Service Release 2))
  • Github #5544 - "[Material, iOS] Frame on iOS isn't respecting the corner radius" (#6099) (added in 4.0.0.425677 (4.0.0))
  • Github #5822 - "editor placeholder issue" (#5823) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #6260 - "Xamarin Forms: MemoryLeak Button ImageSource" (#6274) (added in 4.0.0.482894 (4.0.0 Service Release 2))

F100s

  • Github #1661 - "[Enhancement] Android: WebView - Control over Zoom controls" (#3607) (added in 4.0.0.232914-pre6 (4.0.0 Pre Release 6))

Features in Preview

CollectionView

  • "[CollectionView] Fixes for ObservableCollection usage on Android and iOS" (#4664) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • "[iOS] Fix crash when going from empty to having items" (#5430) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • "CollectionView MultiSelect iOS/Android" (#5352) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • "InvalidateLayout after reload to avoid iOS 10 crash" (#6190) (added in 4.0.0.482894 (4.0.0 Service Release 2))
  • "Make Android CollectionView smarter about recycling elements/renderers" (#5980) (added in 4.0.0.425677 (4.0.0))
  • Github #4826 - "[Enhancement] Make CollectionView ItemTemplate work with DataTemplateSelector" (#5429) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • Github #4992 - "CollectionView doesn't resize on orientation change" (#5975) (added in 4.0.0.425677 (4.0.0))
  • Github #5535 - "CollectionView: Swapping EmptyViews has no effect" (#5720) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #5647 - "CollectionView item hidden holds space" (#5905) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #5693 - "CollectionView crashes on Android 5.1.1 when selecting item" (#6306) (added in 4.0.0.482894 (4.0.0 Service Release 2))
  • Github #5793 - "[CollectionView/ListView] Not listening for Reset command" (#6089) (added in 4.0.0.425677 (4.0.0))
  • Github #6168 - "[Bug] CollectionView GridItemLayout reverses width/height" (#6213) (added in 4.0.0.482894 (4.0.0 Service Release 2))

Release History

  • Monday, June 3, 2019 - Xamarin.Forms 4.0.0.482894 (4.0.0 Service Release 2)
  • Tuesday, May 14, 2019 - Xamarin.Forms 4.0.0.425677 (4.0.0)
  • Friday, May 3, 2019 - Xamarin.Forms 4.0.0.394984-pre10 (4.0.0 Pre Release 10)
  • Wednesday, April 17, 2019 - Xamarin.Forms 4.0.0.346134-pre9 (4.0.0 Pre Release 9)
  • Wednesday, April 3, 2019 - Xamarin.Forms 4.0.0.304370-pre8 (4.0.0 Pre Release 8)
  • Wednesday, March 20, 2019 - Xamarin.Forms 4.0.0.250467-pre7 (4.0.0 Pre Release 7)
  • Wednesday, March 13, 2019 - Xamarin.Forms 4.0.0.232914-pre6 (4.0.0 Pre Release 6)
  • Wednesday, February 20, 2019 - Xamarin.Forms 4.0.0.169046-pre5 (4.0.0 Pre Release 5)
  • Wednesday, February 6, 2019 - Xamarin.Forms 4.0.0.135214-pre4 (4.0.0 Pre Release 4)
  • Wednesday, January 23, 2019 - Xamarin.Forms 4.0.0.94569-pre3 (4.0.0 Pre Release 3)
  • Thursday, January 10, 2019 - Xamarin.Forms 4.0.0.62955-pre2 (4.0.0 Pre Release 2)
  • Monday, December 3, 2018 - Xamarin.Forms 4.0.0.8055-pre1 (4.0.0 Pre Release 1)

Monday, June 3, 2019 - Xamarin.Forms 4.0.0.482894 (4.0.0 Service Release 2)

Issues Fixed

Additional fixes included in this release

  • "[Android] rollback IButtonLayoutRenderer to match 3.6" (#6290)
  • "Allow third party libs to display animated images correctly in view recycling scenarios" (#6153)
  • "InvalidateLayout after reload to avoid iOS 10 crash" (#6190)
  • "Properly guard against statusbar usage" (#5999)

Tuesday, May 14, 2019 - Xamarin.Forms 4.0.0.425677 (4.0.0)

Issues Fixed

  • Github #2989 - "[Android] Fast Renderers are not visually dealing with moving views around in the visual stack correctly" (#6108)
  • Github #3125 - "[Shell] Search bar on iOS is dark and black text is illegible" (#5810)
  • Github #3543 - "[Android] Can't Overlap a Button with any view" (#6108)
  • Github #3875 - "[Shell] Flyout menu items should start below my header, no matter how tall" (#6109)
  • Github #4399 - "[Shell] MenuItems outside of collection render differently" (#6117)
  • Github #4683 - "Xamarin 4.0.0.8055-pre1 Shell doesn't load the Stylesheets on first presenting pages" (#6082)
  • Github #4872 - "[Shell] CSS is not working when referencing CSS-file in App.xaml" (#6082)
  • Github #4992 - "CollectionView doesn't resize on orientation change" (#5975)
  • Github #5132 - "Unable to specify automation properties on the hamburger / flyout icon" (#5758)
  • Github #5216 - "[Shell] Flyout menu item SelectionChanged navigation too laggy." (#6066)
  • Github #5544 - "[Material, iOS] Frame on iOS isn't respecting the corner radius" (#6099)
  • Github #5707 - "[Shell] MenuItem BindingContext not inherited from Shell" (#6117)
  • Github #5766 - "[Android / Fast Renderer] Frame size gets corrupted when ListView is scrolled" (#6115)
  • Github #5768 - "[Shell] Unable to focus search handler" (#5810)
  • Github #5793 - "[CollectionView/ListView] Not listening for Reset command" (#6089)
  • Github #5888 - "[Bug] ListView HasUnevenRows is not working in iOS 10" (#6166)
  • Github #5940 - "[Bug] Shell treats Show/Hide Flyout Differently from TabBar and NavBar" (#6173)
  • Github #5956 - "CSS defined in App does not affect TitleView [Bug] " (#6082)
  • Github #6123 - "[Bug] Change of BackgroundImage PropertyType from string to FileImageSource causes Build Errors in Rg.Plugins.Popup" (#6133)
  • Github #6130 - "[Bug] [Forms 4.0] [Android] Mismatch in WebView.EnableZoomControls platform-specific" (#6137)
  • Github #6132 - "[Bug] [Forms 4.0] [Android] WebView.EnableZoomControls platform-specific doesn't work" (#6137)

Additional fixes included in this release

  • "[Android] _shellContext.Shell.FlyoutIcon was null, crashing AutomationProperties.GetHelpText..." (#6165)
  • "[Android] VisualElementRenderer and ElevationHelper should be public" (#6131)
  • "[iOS] add DesignerFlyoutRenderer when running as previewer" (#6119)
  • "[iOS] Fix NRE SearchHandler iOS10" (#6170)
  • "[iOS] Shell _headerView can apparently be null" (#6164)
  • "[Shell] Add Tab bar and auto promote tabs to nearest TabBar" (#6023)
  • "Hopefully fix the mdoc issues with the localization typo" (#6105)
  • "Make Android CollectionView smarter about recycling elements/renderers" (#5980)
  • "remove route params from shell" (#6081)
  • "remove safe area from inset" (#6169)
  • "return from designer earlier" (#6102)
  • Github #5908 - "Xamarin.Forms Previewer : NullReference Exception with Shell" (#5955)

Friday, May 3, 2019 - Xamarin.Forms 4.0.0.394984-pre10 (4.0.0 Pre Release 10)

Issues Fixed

  • Github #3124 - "[Shell] 3bar.png missing for the flyout menu hamburger" (#5567) (#5961)
  • Github #3207 - "Replace all occurrences of FileImageSource with ImageSource" (#4915)
  • Github #4689 - "[Android] StackLayout.LayoutChildren null ref XF 3.4" (#4915)
  • Github #5131 - "Unable to set tab or focus order on Shell flyout menu items" (#5930)
  • Github #5501 - "Binding on Shell.FlyoutHeaderTemplate not work" (#5934)
  • Github #5521 - "[CollectionView, iOS] Layout trouble with custom layout when changing device orientation" (#5905)
  • Github #5647 - "CollectionView item hidden holds space" (#5905)
  • Github #5650 - "[Shell,TitleView, Android] TitleView Bindings does not work with Android" (#5934)
  • Github #5721 - "[CollectionView] Functionality issues on iOS when using certain layout(s)" (#5905)
  • Github #5799 - "[Visual] Entry control page does not load in release" (#6032)
  • Github #5870 - "[Shell] Shell class has an unused GroupHeaderTemplate bindable property" (#5906)
  • Github #5924 - "[Bug] The type SearchBoxVisiblity is misspelled" (#5931)
  • Github #5927 - "[Bug] Shell content padding on iOS default" (#5990)
  • Github #5945 - "[Android] Picker dismissed with hardware back or click outside the modal cannot be re-opened " (#6031)
  • Github #5951 - "[Bug] App Crashes Within iOS ShadowEffect's OnDetached Method With VisualElement That's Never Visible" (#5952)
  • Github #5970 - "[Bug] [Android] NullReferenceException in Dispose of SwitchRenderer when creating derived custom renderer" (#6029)
  • Github #5971 - "Shell layout different between iOS 10 and later versions " (#5990)
  • Github #6016 - "[Bug] (Shell, Android) Shell.Current.GoToAsync 2 levels from root causes root page so flicker in at transition" (#6025)

Additional fixes included in this release

  • "[Android] move runtime registration of renderers to its own method" (#5946)
  • "[Shell] Routing: fix infinite loops and remove public apis" (#5954)
  • "[UWP] Avoid LINQ exception when the back button is pressed " (#5933)
  • "Move IElementConfiguration to an internal structure on Cell" (#5850)

Wednesday, April 17, 2019 - Xamarin.Forms 4.0.0.346134-pre9 (4.0.0 Pre Release 9)

Issues Fixed

Additional fixes included in this release

  • "XamlLoader should not ignore x:TypeArguments on root node" (#5804)

Wednesday, April 3, 2019 - Xamarin.Forms 4.0.0.304370-pre8 (4.0.0 Pre Release 8)

Issues Fixed

Additional fixes included in this release

  • "[CollectionView] Fixes for ObservableCollection usage on Android and iOS" (#4664)
  • "[iOS] Fix crash when going from empty to having items" (#5430)
  • "[Shell] Rename CurrentShell to Current" (#5761)
  • "[XamlC] Resolve complex property type" (#5086)
  • "Add covariance back to IElementConfiguration" (#5771)
  • "Add translated Intellisense files to NuGet package" (#5672)
  • "Centralize Theme Wrapper and fix sandbox to work with previewer" (#5495)
  • "Correctly load addresses of intermediate values in compiled binding paths" (#5082)
  • "Re-enable "Treat warnings as errors"" (#5602)
  • "remove covariant out on IElementConfiguration" (#5449)
  • "Shell throws an exception when updating the padding insets" (#5757) (#6054)

Wednesday, March 20, 2019 - Xamarin.Forms 4.0.0.250467-pre7 (4.0.0 Pre Release 7)

Issues Fixed

Wednesday, March 13, 2019 - Xamarin.Forms 4.0.0.232914-pre6 (4.0.0 Pre Release 6)

Issues Fixed

Additional fixes included in this release

  • "[Android] ContextCompat.getColor if API < 23" (#5450)
  • "[iOS] Fix ImageRenderer dispose" (#5222)
  • "[macOS] Only the first Navigating event of WebView can be triggered" (#4737)
  • "[Shell] Add AllowMultiple=true to QueryPropertyAttribute" (#5180)
  • "[UWP] Roll back PR 3400 so the correct context is passed into Tapped" (#5476)
  • "BindableProperty: More explanatory exception message" (#5384)
  • "Revert "Add AllowMultiple=true to QueryPropertyAttribute"" (#5234)
  • "Updated all the OpenTK references to use NuGet" (#4836)

Wednesday, February 20, 2019 - Xamarin.Forms 4.0.0.169046-pre5 (4.0.0 Pre Release 5)

See Xamarin.Forms 3.6!

Wednesday, February 6, 2019 - Xamarin.Forms 4.0.0.135214-pre4 (4.0.0 Pre Release 4)

See Xamarin.Forms 3.6!

Wednesday, January 23, 2019 - Xamarin.Forms 4.0.0.94569-pre3 (4.0.0 Pre Release 3)

See Xamarin.Forms 3.5!

Thursday, January 10, 2019 - Xamarin.Forms 4.0.0.62955-pre2 (4.0.0 Pre Release 2)

See Xamarin.Forms 3.5!

Monday, December 3, 2018 - Xamarin.Forms 4.0.0.8055-pre1 (4.0.0 Pre Release 1)

See Xamarin.Forms 3.5!

Known Issues

  • Github #6381 - "ListView in Xamarin Forms 4 With Shell in Android not Scrolling"
  • Github #6372 - "[Bug] [CustomRenderer] [iOS] View.Bounds all 0 OnElementChanged"
  • Github #6362 - "[Bug] Shell's GoToAsync doesn't update top tabbar's bold tab (iOS only)"
  • Github #6355 - "[Bug] Xamarin Forms 4 regression: ListView display glitches"
  • Github #6344 - "[Bug] Shell crash"
  • Github #6334 - "[Bug] iOS effect no longer works after upgrading to XF 4.0 since UIView.Bounds has no size in PlatformEffect.OnAttached()"
  • Github #6327 - "[Bug] Xamarin.Forms 4 (4.0.0.425677) fails Image in Button when resources are defined in Android class library"
  • Github #6323 - "[Bug] IndexOutOfRangeException on TabbedPage with UWP (Forms 4.0)"
  • Github #6319 - "Button click event always fire even when a button is hidden below an entry"
  • Github #6315 - "ListView behave strange after updating XF to 4.0 in Android"
  • Github #6313 - "[Bug] [Android] ImageCell does not load image (4.0.0.425677)"
  • Github #6307 - "[Bug] [Shell] [Android] Setting BackButtonBehavior IsEnabled to False causes an exception when loading page"
  • Github #6297 - "[Bug] Listview with custom viewcell renders wrongly after XF4.0 update"
  • Github #6291 - "[Bug] Shell Search Handler is broken in API < 23"
  • Github #6282 - "Text on button loses center alignment on changing of IsEnabled after updating XF to 4.0.0.425677 "
  • Github #6267 - "[Bug] Setting a picker BackgroundColor through XAML binding or programmatically in code behind crashes app"
  • Github #6258 - "[Bug] [Android] ContextActions icon not working"
  • Github #6184 - "[Bug] Invalid TabBar.Items access in iOS ShellItemRenderer"
  • Github #6174 - "[Bug] Shell - Black Screen (ContentPage) after quick switching tabs"
  • Github #6135 - "[Bug] UrlImageSources still need a little work on UWP"
  • Github #5940 - "[Bug] Shell treats Show/Hide Flyout Differently from TabBar and NavBar"
  • Github #5838 - "[Android] 4.0.1.305340-nightly breaks ListView recylcing"
  • Github #5465 - "[UWP] Issue2927 failing and Tapped is passing the wrong value in for Item"
  • Github #5336 - "Effect that changes Label's background does not work when the FastRenderers flag is set"
  • Github #5145 - "[iOS] fix accessibility of Picker"
  • Github #5125 - "[Android] fix accessibility of Picker"
  • Github #5077 - "Implicit style is not applied to derived types"
  • Github #4946 - "Tests in Issue3624 fails"
  • Github #4755 - "[Shell] Control loses focus after appearing"

Breaking Changes

  • "[Shell] Rename CurrentShell to Current" (#5761) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • "Move IElementConfiguration to an internal structure on Cell" (#5850) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #2989 - "[Android] Fast Renderers are not visually dealing with moving views around in the visual stack correctly" (#6108) (added in 4.0.0.425677 (4.0.0))
  • Github #3207 - "Replace all occurrences of FileImageSource with ImageSource" (#4915) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #5724 - "[Spec] Use Android Fast Renderers by Default" (#5926) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #6123 - "[Bug] Change of BackgroundImage PropertyType from string to FileImageSource causes Build Errors in Rg.Plugins.Popup" (#6133) (added in 4.0.0.425677 (4.0.0))
  • Github #6132 - "[Bug] [Forms 4.0] [Android] WebView.EnableZoomControls platform-specific doesn't work" (#6137) (added in 4.0.0.425677 (4.0.0))

Namespace Xamarin.Forms

Type Changed: Xamarin.Forms.Cell

Removed interface:

-Xamarin.Forms.IElementConfiguration<Cell>

Type Changed: Xamarin.Forms.EntryCell

Removed interface:

-Xamarin.Forms.IElementConfiguration<Cell>

Type Changed: Xamarin.Forms.IShellController

Removed event:

-public event System.EventHandler HeaderChanged;

Type Changed: Xamarin.Forms.IShellItemController

Removed method:

-public virtual System.Threading.Tasks.Task GoToPart (System.Collections.Generic.List<string> parts, System.Collections.Generic.Dictionary<System.String,System.String> queryData);

Type Changed: Xamarin.Forms.IShellSectionController

Removed method:

-public virtual System.Threading.Tasks.Task GoToPart (System.Collections.Generic.List<string> parts, System.Collections.Generic.Dictionary<System.String,System.String> queryData);

Type Changed: Xamarin.Forms.ImageCell

Removed interface:

-Xamarin.Forms.IElementConfiguration<Cell>

Type Changed: Xamarin.Forms.Routing

Removed method:

-public static string GetRoute (Element obj);

Type Changed: Xamarin.Forms.SearchHandler

Modified properties:

-public SearchBoxVisiblity SearchBoxVisibility { get; set; }
+public SearchBoxVisibility SearchBoxVisibility { get; set; }

Type Changed: Xamarin.Forms.Shell

Removed fields:

-public static BindableProperty GroupHeaderTemplateProperty;
-public static BindableProperty MenuItemsProperty;
-public static BindableProperty SetPaddingInsetsProperty;
-public static BindableProperty ShellBackgroundColorProperty;
-public static BindableProperty ShellDisabledColorProperty;
-public static BindableProperty ShellForegroundColorProperty;
-public static BindableProperty ShellTabBarBackgroundColorProperty;
-public static BindableProperty ShellTabBarDisabledColorProperty;
-public static BindableProperty ShellTabBarForegroundColorProperty;
-public static BindableProperty ShellTabBarTitleColorProperty;
-public static BindableProperty ShellTabBarUnselectedColorProperty;
-public static BindableProperty ShellTitleColorProperty;
-public static BindableProperty ShellUnselectedColorProperty;

Removed properties:

-public static Shell CurrentShell { get; }
-public DataTemplate GroupHeaderTemplate { get; set; }
-public MenuItemCollection MenuItems { get; }
-public string Route { get; set; }
-public string RouteHost { get; set; }
-public string RouteScheme { get; set; }

Modified properties:

-public ShellItemCollection Items { get; }
+public System.Collections.Generic.IList<ShellItem> Items { get; }

Removed methods:

-public static bool GetSetPaddingInsets (BindableObject obj);
-public static Color GetShellBackgroundColor (BindableObject obj);
-public static Color GetShellDisabledColor (BindableObject obj);
-public static Color GetShellForegroundColor (BindableObject obj);
-public static Color GetShellTabBarBackgroundColor (BindableObject obj);
-public static Color GetShellTabBarDisabledColor (BindableObject obj);
-public static Color GetShellTabBarForegroundColor (BindableObject obj);
-public static Color GetShellTabBarTitleColor (BindableObject obj);
-public static Color GetShellTabBarUnselectedColor (BindableObject obj);
-public static Color GetShellTitleColor (BindableObject obj);
-public static Color GetShellUnselectedColor (BindableObject obj);
-public static void SetSetPaddingInsets (BindableObject obj, bool value);
-public static void SetShellBackgroundColor (BindableObject obj, Color value);
-public static void SetShellDisabledColor (BindableObject obj, Color value);
-public static void SetShellForegroundColor (BindableObject obj, Color value);
-public static void SetShellTabBarBackgroundColor (BindableObject obj, Color value);
-public static void SetShellTabBarDisabledColor (BindableObject obj, Color value);
-public static void SetShellTabBarForegroundColor (BindableObject obj, Color value);
-public static void SetShellTabBarTitleColor (BindableObject obj, Color value);
-public static void SetShellTabBarUnselectedColor (BindableObject obj, Color value);
-public static void SetShellTitleColor (BindableObject obj, Color value);
-public static void SetShellUnselectedColor (BindableObject obj, Color value);

Type Changed: Xamarin.Forms.ShellItem

Modified properties:

-public ShellSectionCollection Items { get; }
+public System.Collections.Generic.IList<ShellSection> Items { get; }

Type Changed: Xamarin.Forms.ShellNavigationState

Modified properties:

 public System.Uri Location { get; ---set;--- }

Type Changed: Xamarin.Forms.ShellSection

Modified properties:

-public ShellContentCollection Items { get; }
+public System.Collections.Generic.IList<ShellContent> Items { get; }

Removed method:

-public virtual System.Threading.Tasks.Task GoToAsync (System.Collections.Generic.List<string> routes, System.Collections.Generic.IDictionary<System.String,System.String> queryData, bool animate);

Removed Type Xamarin.Forms.ShellSection.NavigationImpl

Type Changed: Xamarin.Forms.SwitchCell

Removed interface:

-Xamarin.Forms.IElementConfiguration<Cell>

Type Changed: Xamarin.Forms.TabIndexExtensions

Removed methods:

-public static VisualElement FindNextElement (this VisualElement element, bool forwardDirection, System.Collections.Generic.IDictionary<System.Int32,System.Collections.Generic.List<VisualElement>> tabIndexes, ref int tabIndex);
-public static System.Collections.Generic.IDictionary<System.Int32,System.Collections.Generic.List<VisualElement>> GetTabIndexesOnParentPage (this VisualElement element, out int countChildrensWithTabStopWithoutThis);

Type Changed: Xamarin.Forms.TextCell

Removed interface:

-Xamarin.Forms.IElementConfiguration<Cell>

Type Changed: Xamarin.Forms.ViewCell

Removed interface:

-Xamarin.Forms.IElementConfiguration<Cell>

Type Changed: Xamarin.Forms.VisualElement

Removed properties:

-public Style Style { get; set; }
-public System.Collections.Generic.IList<string> StyleClass { get; set; }
-public System.Collections.Generic.IList<string> class { get; set; }

Removed Type Xamarin.Forms.MenuShellItem

Removed Type Xamarin.Forms.SearchBoxVisiblity

Removed Type Xamarin.Forms.ShellContentCollection

Removed Type Xamarin.Forms.ShellItemCollection

Removed Type Xamarin.Forms.ShellSectionCollection

Namespace Xamarin.Forms.Platform.Android

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

Removed constructor:

-public EmptyViewAdapter ();

Namespace Xamarin.Forms.Platform.iOS

Type Changed: Xamarin.Forms.Platform.iOS.ShellTableViewController

Removed constructor:

-public ShellTableViewController (IShellContext context, UIKit.UIView headerView, System.Action<Xamarin.Forms.Element> onElementSelected);

Deprecations

  • Github #3478 - "Allow TintColor and UnselectedItemTintColor as platform-specifics" (#4899) (added in 4.0.0.232914-pre6 (4.0.0 Pre Release 6))
  • Github #5015 - "[Enhancement] BindableObject perf improvements" (#5324) (added in 4.0.0.232914-pre6 (4.0.0 Pre Release 6))

API Changes

See all API Changes here.

  • "[Shell] Rename CurrentShell to Current" (#5761) (added in 4.0.0.304370-pre8 (4.0.0 Pre Release 8))
  • Github #1661 - "[Enhancement] Android: WebView - Control over Zoom controls" (#3607) (added in 4.0.0.232914-pre6 (4.0.0 Pre Release 6))
  • Github #2789 - "Improved A11y Support - TabIndex" (#3989) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #3125 - "[Shell] Search bar on iOS is dark and black text is illegible" (#5810) (added in 4.0.0.425677 (4.0.0))
  • Github #3478 - "Allow TintColor and UnselectedItemTintColor as platform-specifics" (#4899) (added in 4.0.0.232914-pre6 (4.0.0 Pre Release 6))
  • Github #4769 - "[Shell] URI based navigation missing methods" (#5852) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #5310 - "Ability to hide HomeIndicator from iPhone X, XR, XS on given page" (#5717) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #5520 - "Cannot create a Behavior for BindableObject" (#5559) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #5712 - "[Shell]SearchHandler should include SelectedItem property" (#5775) (added in 4.0.0.346134-pre9 (4.0.0 Pre Release 9))
  • Github #5924 - "[Bug] The type SearchBoxVisiblity is misspelled" (#5931) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #6016 - "[Bug] (Shell, Android) Shell.Current.GoToAsync 2 levels from root causes root page so flicker in at transition" (#6025) (added in 4.0.0.394984-pre10 (4.0.0 Pre Release 10))
  • Github #6132 - "[Bug] [Forms 4.0] [Android] WebView.EnableZoomControls platform-specific doesn't work" (#6137) (added in 4.0.0.425677 (4.0.0))

Blogs

blog.xamarin.com

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
adrianknight89 (@adrianknight89) [iOS] Added RowAnimationsEnabled platform specific to control row animations (#4709) #4709
Akihiko Odaki (@akihikodaki) [XamlC] Resolve generic parameters of a method with generic return type (#4244) #4244
Akihiko Odaki (@akihikodaki) [XamlC] Always enable implicit casting, boxing and unboxing (#4238) #4238
Akihiko Odaki (@akihikodaki) [XamlC] Test generic parameters to evaluate equality of types (#4062) #4062
Akihiko Odaki (@akihikodaki) [XamlC] Identify generic instance types correctly when importing ctor (#5309) #5309
Akihiko Odaki (@akihikodaki) [XamlC] Correctly load addresses of values in compiled binding paths (#5082) #5082
Akihiko Odaki (@akihikodaki) [XamlC] Resolve complex property type (#5086) #5086
Almir Vuk (@almirvuk) [Enhancement] Entry: Read-only Entry and Editor (#1972) #1972
Andrei (@AndreiMisiukevich) [iOS] ImageButton border radius issue (#4518) #4518
Andrei (@AndreiMisiukevich) [iOS] Fixed keyboard type for cells in TableView (#4377) fixes #1386 #4377
Andrei (@AndreiMisiukevich) [Enhancement] Added GroupHeaderStyle property for iOS specific ListView class (#4616) #4616
Andrei (@AndreiMisiukevich) [Android] Crash at Dependency service call possible fix (#4157) #4157
Andrei (@AndreiMisiukevich) [iOS] Change default background color of Cell to UIColor.Clear (#4002) fixes #3450 #4002
Andrei (@AndreiMisiukevich) [macOS] BoxView binding to BackgroundColor broken (#4958) #4958
Andrei (@AndreiMisiukevich) fix #4788 (#4959) fixes #4788 #4959
Andrei (@AndreiMisiukevich) [Mac] NavigationPageRenderer amendments RE: Issue4388 (#4607) #4388 #4389 #4607
Andrei (@AndreiMisiukevich) Added TapGesture handling for Spans on Mac OS * fixes #4775 #
Andrei (@AndreiMisiukevich) [MacOs] Slider inside StackLayout Horizontal Orientation crash (#5191) * fixes #3610 #5191
Andrei (@AndreiMisiukevich) fix https://github.com/xamarin/Xamarin.Forms/issues/5346 (#5379) #5379
Andrei (@AndreiMisiukevich) [macOS] Fixes #5257 (#5262) #5262
Andrei Nitescu (@andreinitescu) Map with ItemsSource and ItemTemplate (#4269) fixes #1708 #4269
Andrei Nitescu (@andreinitescu) Changed Span default binding to OneWay (#4850) #4850
Andrei Nitescu (@andreinitescu) Fixed passing container (#5158) #5158
Andrei Nitescu (@andreinitescu) [Android] Set Page background color (#5066) * Fixes #5057 * closes #4916 * Fixes #5073 #5066
Andrei Nitescu (@andreinitescu) [iOS] Fixed updating Label TextDecorations when no Text is set (#5013) #5013
Andrei Nitescu (@andreinitescu) BindableProperty: More explanatory exception message (#5384) #5384
Andrei Nitescu (@andreinitescu) Fix Map ItemsSource bp name (#5499) #5499
Andrei Nitescu (@andreinitescu) Removed dependency on modernhttpclient (#5390) #5390
Artem Utin (@artemutin) added case in GTK listviewrendered for change of SelectedItem property (#4757) #4757
Brian Macomber (@bmacombe) [UWP] Fix ScrollViewer Horizontal Scroll Bar Visibility when set before control load (#3195) fixes #3193 #3195
Chris van de Steeg (@csteeg) Fix BindableLayout's incorrect layout.children.add -> use insert (#5582) #5582
Dan Siegel (@dansiegel) directly load specified Font Family or other valid PostScript Font Name fixes #5372 (#5373) #5373
Daniel Luberda (@daniel-luberda) [Android] VisualElementRenderer and ElevationHelper should be public (#6131) #6131
Daniel Luberda (@daniel-luberda) Allow third party libs to display animated images correctly in view recycling scenarios (#6153) #6153
DavidRoqueni (@DavidRoqueni) Updated README to reflect correct name (#4687) #4687
flyofsky (@flyofsky) [Tizen]Update style for Phone Idiom in ImageCell renderer (#4610) #4610
genriquez (@genriquez) [iOS] Recover from popping page after the page has already been popped by back button (#2873) #2873
Gerald Versluis (@jfversluis) Disable suggestions for all Pickers (#4824) fixes #4629 #4824
Gerald Versluis (@jfversluis) [C, iOS, AND, UWP] Color for Picker.Title (#4701) #4701
Gerald Versluis (@jfversluis) [UWP] Implementation of Switch.OnColor (#4883) #4883
Gerald Versluis (@jfversluis) Fixed bug where switch in a TableView would disappear on UWP. The method for setting the default color was only called when it was in a ListView. Also renamed the method to be more clear. (#4912) #4912
Gerald Versluis (@jfversluis) [Enhancement][Core] ListView should report index of item on all events (#4431) #4431
Gerald Versluis (@jfversluis) Fixed opening of multiple picker dialogs on Android (#4911) fixes #4909 #4911
Gerald Versluis (@jfversluis) [Enhancement] Android: WebView - Control over Zoom controls (#3607) fixes #1661 #3607
Gerald Versluis (@jfversluis) [C, iOS, AND, UWP] TabbedPage SelectedTabColor and UnselectedTabColor (#4899) #4899
Ione Souza Junior (@ionixjunior) Add UI test to B41600 (#5174) #5174
jcmanke (@jcmanke) Change SearchBar base class to InputView (#3248) fixes #2902 #3248
Jeremy Marcus (@jsmarcus) Update BindableLayout.cs to fix #5213 (#5243) #5243
Joris Vergeer (@jorisvergeer) [Android] Fix for ListViewRenderer causing ObjectDisposedException (#4931) #4931
Kangho Hur (@rookiejava) [Tizen] Supports SwitchCell.OnColor (#4785) #4785
Kangho Hur (@rookiejava) [Tizen] Supports Picker.TitleColor, FontSize, FontFamily and FontAttributes (#4839) #4839
Kangho Hur (@rookiejava) [Material] [Tizen] Adds Xamarin.Forms.Material.Tizen for Visual (#5453) #5453
Kevin Petit (@kvpt) [Android] Fix ObjectDisposedException on MasterDetailPageRenderer update (#4955) #4955
Matthew Richardson (@velocitysystems) [Enhancement] Add drag started and completed events/commands to Slider (#4423) fixes #1450 #4423
Matthew Richardson (@velocitysystems) Null/disposed check for spannableString to fix ObjectDisposedException. (#4878) Fixes #4864 #4878
Matthew Robbins (@matthewrdev) Add AllowMultiple=true to QueryPropertyAttribute (#5180) #5180
Matthijs ter Woord (@mterwoord) Fix WPFResources, EntryCell (#5361) #5361
Morten Nielsen (@dotMorten) Avoid LINQ exception (#5933) #5933
Morten Nielsen (@dotMorten) Properly guard against statusbar usage (#5999) #5999
mtz (@mfkl) [GTK] Fix NavigationBar check for Layout calc (#5506) #5506
Patrick Allwood (@patchandthat) Fix dynamic resources in merged dictionaries #3661 (#4993) * fixes #3661 #4993
Paul Datsiuk (@JTOne123) [Android] Java.Lang.RuntimeException: Animators may only be run on Lo… (#4177) #4177
piotrkonowalski (@piotrkonowalski) [iOS] Add Platform Specific features for PrefersHomeIndicatorAutoHidden (#5717) #5717
Sanya Andreichuk (@sanyandreichuk) Fix ScrollTo on Mac (#4983) * fixes #3319 #4983
spruceDevelopment (@spruceDevelopment) Correct Grid Height When Aspect Fit Image Gets Shrinked (#4990) #4990
Yaser Moradi (@ysmoradi) Add Serializable on exception types (#4690) #4690
yourina (@yourina) Add the ShellRenderer for Tizen (#5818) #5818
Yun Chen (@masonyc) apply Remove suggestion bar in iOS picker (#4634) #4634
zhuXinghan (@zhuxinghan) Update WebViewRenderer.cs (#4737) #4737

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.0.0 is based on the open-source Xamarin.Forms repository: