Xamarin.Forms 4.0.0.425677 (4.0.0) Release Notes

Getting Started | What's New | Known Issues | Breaking Changes | API Changes | Blogs | 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 #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))

Visual

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

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 and CarouselView (still in preview)

CollectionView is the flexible and performant list control that you've been asking for. It can handle horizontal, vertical, and grid layouts out of the box, and you can provide custom layouts as well. CollectionView is also the foundation for CarouselView.

For more information about CollectionView, check out the preview doc.

  • "[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))
  • "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 #5793 - "[CollectionView/ListView] Not listening for Reset command" (#6089) (added in 4.0.0.425677 (4.0.0))

Release History

  • Tuesday, May 21, 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)

Tuesday, May 21, 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 #6135 - "[Bug] UrlImageSources still need a little work on UWP"
  • Github #5940 - "[Bug] Shell treats Show/Hide Flyout Differently from TabBar and NavBar"
  • 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 #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 ();

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

Removed property:

-public Xamarin.Forms.Button Element { get; }

Removed event:

-public event System.EventHandler<VisualElementChangedEventArgs> ElementChanged;

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

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: