Xamarin.Forms 2.2.0.4-pre1

Build native UIs for iOS, Android, and Windows Phone from a single, shared C# codebase

This is a prerelease version of Xamarin.Forms.
There is a newer version of this package available.
See the version list below for details.
Install-Package Xamarin.Forms -Version 2.2.0.4-pre1
dotnet add package Xamarin.Forms --version 2.2.0.4-pre1
<PackageReference Include="Xamarin.Forms" Version="2.2.0.4-pre1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Xamarin.Forms --version 2.2.0.4-pre1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

## New Features ##

### Updated Google Package Dependencies ###

Xamarin.Forms on Android now depends on GooglePlayServices 29.0.0.1 for maps and Xamarin.Android.Support.v4 (and friends) at 32.1.1.1.

### Margins ###
Adding margin support is intended to allow users to reduce the overall depth of their layout hierarchies by allowing more complex layouts with fewer wrapping views.
`public Thickness Margin { get; set; }`

### UWP Maps ###

UWP Maps are now supported, just like other platforms.

### CarouselView ###

CarouselView is intended to fully replace CarouselPage. CarouselPage will be deprecated in a future release. CarouselView is superior in many ways, including its ability to be virtualized and nested within layouts.

### Nest platform controls to Forms layout ##
Allows adding platform-specific controls (iOS, Android, and Windows) directly to a Forms layout. Note: this isn't available from PCL and requires #if defines to work from a shared project.

### 2D ScrollView Support ###

`scrollView.Orientation = ScrollOrientation.Both`

### AutomationId Support ###

Xamarin.Forms now has first class support for setting automation identifiers for usage with Xamarin UITest or other testing frameworks. Simply setting the AutomationID property should allow the automation framework to find and interact with your controls.

## Bug Fixes ##

[21177](https://bugzilla.xamarin.com/show_bug.cgi?id=21177) - Using a UICollectionView in a ViewRenderer results in issues with selection.
[21699](https://bugzilla.xamarin.com/show_bug.cgi?id=21699) - WebView does not propagate its BindingContext to its Source
[23393](https://bugzilla.xamarin.com/show_bug.cgi?id=23393) - [All platforms] PropertyChangedEventHandler causes 2 consecutive calls to changed property's getter
[25234](https://bugzilla.xamarin.com/show_bug.cgi?id=25234) – WP8 - Light theme status bar disappears after DisplayAlert
[25662](https://bugzilla.xamarin.com/show_bug.cgi?id=25662) - Setting IsEnabled does not disable SwitchCell in Forms listview
[27350](https://bugzilla.xamarin.com/show_bug.cgi?id=27350) - Binding throws Null Pointer Exception when Updating Tab
[27417](https://bugzilla.xamarin.com/show_bug.cgi?id=27417) - Button.Image behaviors differently on each platform and has extra padding even with no Text
[28628](https://bugzilla.xamarin.com/show_bug.cgi?id=28628) - Reuse of cell containing an Image that are async loaded will display the previous image.
[28709](https://bugzilla.xamarin.com/show_bug.cgi?id=28709) - Application.Properties saving crash
[31670](https://bugzilla.xamarin.com/show_bug.cgi?id=31670) - On WinRT, BackgroundColor of Button is used to paint outside the border of Buttons with rounded corners
[32462](https://bugzilla.xamarin.com/show_bug.cgi?id=32462) - Crash after a page disappeared if a ScrollView is in the HeaderTemplate property of a ListView
[33181](https://bugzilla.xamarin.com/show_bug.cgi?id=33181) - InitializeComponent() method call in XAML code behind page constructor "does not exist in current context" (IntelliSense error)
[33240](https://bugzilla.xamarin.com/show_bug.cgi?id=33240) - IOS ListViewRenderer.Dispose() should dispose header and footer
[34055](https://bugzilla.xamarin.com/show_bug.cgi?id=34055) - Listview with custom CellView render error on iOS9 landscape iPad
[35407](https://bugzilla.xamarin.com/show_bug.cgi?id=35407) - jobject muste not be IntPtr.Zero with Animation
[36479](https://bugzilla.xamarin.com/show_bug.cgi?id=36479) - [WP] Picker Is Not Disabled When IsEnabled is Set To False
[36788](https://bugzilla.xamarin.com/show_bug.cgi?id=36788) - [Forms] Truncation Issues with Relative Layouts
[36850](https://bugzilla.xamarin.com/show_bug.cgi?id=36850) - ProgressBar BackgroundColor not working in iOS
[37113](https://bugzilla.xamarin.com/show_bug.cgi?id=37113) - MasterDetailPage swipe gesture doesn't work after IsGestureEnabled is toggled
[37625](https://bugzilla.xamarin.com/show_bug.cgi?id=37625) - App crashes when quickly adding/removing Image views (Windows UWP)
[37841](https://bugzilla.xamarin.com/show_bug.cgi?id=37841) - [Forms Android] TableView EntryCell's and TextCell's cease to update after focus change
[38112](https://bugzilla.xamarin.com/show_bug.cgi?id=38112) - [Forms][Android] Switch disappearing from TableView ViewCell on Android only
[38193](https://bugzilla.xamarin.com/show_bug.cgi?id=38193) - OpenGLViewRenderer crashes when leaving the page.
[38416](https://bugzilla.xamarin.com/show_bug.cgi?id=38416) - ListView Sized Incorrectly After Containing Layout's Visibility is Toggled
[38658](https://bugzilla.xamarin.com/show_bug.cgi?id=38658) - Rotation causes app containing carousel page to freeze
[38978](https://bugzilla.xamarin.com/show_bug.cgi?id=38978) - Cell.ForceUpdateSize issues with row selection/deselection on Android
[39039](https://bugzilla.xamarin.com/show_bug.cgi?id=39039) - Toggling Grouping on Listview + ListViewCaching.RecycleElement Sometimes Doesnt Render Group Header
[39104](https://bugzilla.xamarin.com/show_bug.cgi?id=39104) - iOS Navigation.ModalStack not the same as Android and Windows
[39239](https://bugzilla.xamarin.com/show_bug.cgi?id=39239) - Xamarin.Forms.Platform.Android.FontExtensions.ToScaledPixel missing case for NamedSize.Default
[39327](https://bugzilla.xamarin.com/show_bug.cgi?id=39327) - Application.Current.Properties does not persist on Android
[39331](https://bugzilla.xamarin.com/show_bug.cgi?id=39331) - [Android] BoxView Is InputTransparent Even When Set to False
[39342](https://bugzilla.xamarin.com/show_bug.cgi?id=39342) - NullReference Exception when attempting to push a new page
[39359](https://bugzilla.xamarin.com/show_bug.cgi?id=39359) - Image View does cache failed HTTP responses
[39377](https://bugzilla.xamarin.com/show_bug.cgi?id=39377) - ListView.Footer not update iOS
[39378](https://bugzilla.xamarin.com/show_bug.cgi?id=39378) - Image binding with caching not operating as expected
[39395](https://bugzilla.xamarin.com/show_bug.cgi?id=39395) - SwitchCell does not take all available place inside ListView
[39403](https://bugzilla.xamarin.com/show_bug.cgi?id=39403) - [Android] Forms 2.1.0, Switching tabs that have NavigationPages throws: Java.Lang.IllegalStateException: Recursive entry to executePendingTransactions
[39409](https://bugzilla.xamarin.com/show_bug.cgi?id=39409) - SearchBar.SearchCommand does not respect CanExecute
[39447](https://bugzilla.xamarin.com/show_bug.cgi?id=39447) - [Windows Phone 8.1] Images not rendered in ListView unless explicit size set
[39449](https://bugzilla.xamarin.com/show_bug.cgi?id=39449) - UWP: Dependency attribute in 3rd party assemblies
[39450](https://bugzilla.xamarin.com/show_bug.cgi?id=39450) - [Forms] ListView item shrinks / resizes when removing then adding Context Action in ViewCell OnBindindContextChanged.
[39451](https://bugzilla.xamarin.com/show_bug.cgi?id=39451) - Unable to activate instance of type Xamarin.Forms.Platform.Android.ListViewAdapter from native handle
[39458](https://bugzilla.xamarin.com/show_bug.cgi?id=39458) - [UWP/WinRT] Cannot Set CarouselPage.CurrentPage Inside Constructor
[39461](https://bugzilla.xamarin.com/show_bug.cgi?id=39461) - UWP: Labels within a ScrollView are blurred
[39463](https://bugzilla.xamarin.com/show_bug.cgi?id=39463) - [WP8.0] Items not showing in ListView using DataTemplate when there are more items than can fit on screen.
[39464](https://bugzilla.xamarin.com/show_bug.cgi?id=39464) - [UWP Forms] Rounded Button Corners do not render in Forms (but do in native UWP
[39476](https://bugzilla.xamarin.com/show_bug.cgi?id=39476) - [Forms] Selecting item in ListView and scrolling with RecycleElement results in more items selected.
[39483](https://bugzilla.xamarin.com/show_bug.cgi?id=39483) - ListView Context Menu localization
[39495](https://bugzilla.xamarin.com/show_bug.cgi?id=39495) - MasterDetail missing Navigation Bar Windows RT
[39506](https://bugzilla.xamarin.com/show_bug.cgi?id=39506) - Effects.Clear does not detach the effect.
[39509](https://bugzilla.xamarin.com/show_bug.cgi?id=39509) - Setting Page Content doesn't work
[39548](https://bugzilla.xamarin.com/show_bug.cgi?id=39548) - CarouselPage does not work in UWP on Windows 10 Mobile
[39566](https://bugzilla.xamarin.com/show_bug.cgi?id=39566) - System.InvalidOperationException: Sequence contains more than one matching element
[39624](https://bugzilla.xamarin.com/show_bug.cgi?id=39624) - [UWP] CarouselPage.Children Appear Out of Order
[39668](https://bugzilla.xamarin.com/show_bug.cgi?id=39668) - Overriding ListView.CreateDefault Does Not Work on Windows
[39702](https://bugzilla.xamarin.com/show_bug.cgi?id=39702) – Cannot enter text when Entry is focus()'d from an editor completed event
[39721](https://bugzilla.xamarin.com/show_bug.cgi?id=39721) - "Failed to add reference to 'Xamarin.Forms.Core.Design'" when adding XF 2.1.0.6529 NuGet in Windows 81 project
[39742](https://bugzilla.xamarin.com/show_bug.cgi?id=39742) - OnAppearing not triggered if coming back after leaving Android app via home button
[39815](https://bugzilla.xamarin.com/show_bug.cgi?id=39815) - ScrollView is overlapping other content in StackLayout on Android
[39829](https://bugzilla.xamarin.com/show_bug.cgi?id=39829) - RowHeight of ListView is not working for UWP
[39831](https://bugzilla.xamarin.com/show_bug.cgi?id=39831) - MasterDetailPage showing back button instead of Icon in landscape mode (Tablet only)
[39853](https://bugzilla.xamarin.com/show_bug.cgi?id=39853) - BorderRadius ignored on UWP
[39870](https://bugzilla.xamarin.com/show_bug.cgi?id=39870) - Xamarin.Forms.Maps Geocoder GetPositionsForAddressAsync always returns an empty set on Android
[39896](https://bugzilla.xamarin.com/show_bug.cgi?id=39896) - StreamImageSource Streams Aren't Disposed

## Other Fixes ##

- Resolve crash when serializing properties.
- [Core] Resolve issue where binding to a bound property would invalidate the second binding
- [Core] Resolve issue where template bindings resolve the the wrong templated parent in some nesting scenarios
- [Android] Make sure not to update image bitmap in background thread
- [Android] Fix potential crash in OnLayout after resume
- [Android] Fix bug with ActivityIndicator default color on Lollipop+
- [Android] Fix NRE in OnScroll method in android
- [Android] Fix crash when pressing back to exit the app
- [Android] Change Forms class to accept Context type arguments and upcast to Activity as necessary.
- [iOS] Fix crash when visiting website with weird URL handling
- [iOS] Fix crash in VisualElementPackager if re-used on same element
- [RT] Make sure editor has wrapping enabled
- [RT] Add missing binding for SearchBox text
- [UWP] Invalidate Image when loaded in a way which Grid won't ignore
- [UWP] Make sure Scrollview measures child inside of measure call
- [UWP] Make sure we dont construct a negative value size
- [UWP] Fix UWP bug where app bar icon color is ignored on modal NavigationPages
- [UWP] Fix more instances of Layout Cycle detected
- Many other minor bug fixes

## Known Issues ##

- CarouselView can sometimes fail to display content on Android
- CarouselView programmatic moving of index broken

## Important notes ##
- When upgrading Xamarin.Forms take care not to simply "update all" as that will update the Xamarin.Android.Support packages to an incompatible version. More info here: https://developer.xamarin.com/guides/xamarin-forms/troubleshooting/

Version History

Version Downloads Last updated
4.0.0.425677 6,414 5/14/2019
4.0.0.394984-pre10 6,635 5/3/2019
4.0.0.346134-pre9 6,948 4/18/2019
4.0.0.304370-pre8 7,358 4/3/2019
4.0.0.250467-pre7 4,865 3/20/2019
4.0.0.232914-pre6 5,955 3/14/2019
4.0.0.169046-pre5 5,259 2/21/2019
4.0.0.135214-pre4 4,010 2/6/2019
4.0.0.94569-pre3 3,856 1/24/2019
4.0.0.62955-pre2 11,630 1/10/2019
4.0.0.8055-pre1 12,085 12/4/2018
3.6.0.344457 68,973 4/18/2019
3.6.0.293080 49,888 4/3/2019
3.6.0.264807 80,767 3/19/2019
3.6.0.220655 65,224 3/6/2019
3.6.0.169048-pre2 448 2/21/2019
3.6.0.135200-pre1 3,740 2/6/2019
3.5.0.274416 4,151 3/26/2019
3.5.0.169047 56,390 2/20/2019
3.5.0.129452 71,198 2/6/2019
3.5.0.94564-pre3 1,012 1/24/2019
3.5.0.62956-pre2 848 1/10/2019
3.4.0.1039999 3,333 3/26/2019
3.4.0.1029999 67,350 1/24/2019
3.4.0.1009999 79,640 1/4/2019
3.4.0.1008975 337,577 11/15/2018
3.4.0.987044-pre2 2,211 11/8/2018
3.4.0.925479-pre1 8,737 10/18/2018
3.3.0.967583 143,436 11/1/2018
3.3.0.912540 99,076 10/18/2018
3.3.0.893527-pre3 5,956 10/11/2018
3.3.0.871608-pre2 9,181 10/1/2018
3.3.0.840541-pre1 4,541 9/20/2018
3.2.0.871581 86,842 10/3/2018
3.2.0.839982 111,507 9/17/2018
3.2.0.809874-pre3 3,437 9/10/2018
3.2.0.729530-pre2 10,659 8/14/2018
3.2.0.637442-pre1 8,674 7/17/2018
3.1.0.697729 300,854 8/1/2018
3.1.0.637273 93,369 7/11/2018
3.1.0.583944 126,129 6/20/2018
3.1.0.561732-pre4 5,894 6/11/2018
3.1.0.550168-pre3 2,889 6/6/2018
3.1.0.530888-pre2 1,755 6/4/2018
3.1.0.469394-pre1 11,016 5/9/2018
3.0.0.561731 137,820 6/11/2018
3.0.0.550146 25,841 6/6/2018
3.0.0.530893 19,877 6/4/2018
3.0.0.482510 213,488 5/14/2018
3.0.0.446417 117,544 5/1/2018
3.0.0.427558-pre4 8,701 4/25/2018
3.0.0.354232-pre3 13,476 4/5/2018
3.0.0.296286-pre2 8,113 3/20/2018
2.5.1.527436 79,900 5/4/2018
2.5.1.444934 155,382 4/4/2018
2.5.1.392594-pre3 4,127 3/21/2018
2.5.1.340284-pre2 5,917 3/9/2018
2.5.1.317207-pre1 5,601 3/1/2018
2.5.0.280555 306,177 2/16/2018
2.5.0.122203 310,992 12/18/2017
2.5.0.121934 200,297 11/28/2017
2.5.0.91635 128,682 11/16/2017
2.5.0.77107 28,415 11/13/2017
2.5.0.75255-pre3 5,371 11/10/2017
2.5.0.19271-pre2 9,157 10/20/2017
2.4.0.91020 44,667 11/16/2017
2.4.0.74863 34,073 11/10/2017
2.4.0.38779 58,960 10/30/2017
2.4.0.18342 54,588 10/20/2017
2.4.0.282 157,541 9/29/2017
2.4.0.280 188,043 9/27/2017
2.4.0.275-pre3 8,021 9/19/2017
2.4.0.269-pre2 13,539 8/29/2017
2.4.0.266-pre1 19,096 8/16/2017
2.3.5.256-pre6 34,786 6/29/2017
2.3.5.255-pre5 4,818 6/26/2017
2.3.5.239-pre3 27,656 5/11/2017
2.3.5.235-pre2 11,199 4/26/2017
2.3.5.233-pre1 9,045 4/13/2017
2.3.4.270 134,089 8/29/2017
2.3.4.267 65,446 8/16/2017
2.3.4.247 391,295 5/16/2017
2.3.4.231 204,642 4/12/2017
2.3.4.224 245,199 3/29/2017
2.3.4.221-pre6 7,338 3/27/2017
2.3.4.214-pre5 10,231 3/14/2017
2.3.4.212-pre4 6,180 3/10/2017
2.3.4.211-pre3 4,025 3/9/2017
2.3.4.192-pre2 19,232 2/3/2017
2.3.4.184-pre1 12,691 1/13/2017
2.3.3.193 239,663 2/1/2017
2.3.3.180 206,814 1/5/2017
2.3.3.175 117,137 12/6/2016
2.3.3.168 65,817 11/23/2016
2.3.3.166-pre4 7,856 11/3/2016
2.3.3.163-pre3 6,380 10/17/2016
2.3.3.152-pre2 15,799 9/15/2016
2.3.2.127 264,134 9/14/2016
2.3.2.118-pre1 6,797 8/3/2016
2.3.1.114 154,758 8/3/2016
2.3.1.113-pre3 3,813 7/19/2016
2.3.1.111-pre2 4,763 7/4/2016
2.3.1.110-pre1 2,452 6/29/2016
2.3.0.107 196,855 6/29/2016
2.3.0.49 85,964 6/16/2016
2.3.0.46-pre3 15,946 5/30/2016
2.3.0.38-pre2 13,074 4/27/2016
2.3.0.34-pre1 8,690 4/27/2016
2.2.0.45 120,512 5/30/2016
2.2.0.31 126,870 4/27/2016
2.2.0.23-pre4 3,091 4/20/2016
2.2.0.18-pre3 2,302 4/20/2016
2.2.0.5-pre2 15,978 4/8/2016
2.2.0.4-pre1 18,515 4/5/2016
2.1.0.6529 97,602 3/13/2016
2.1.0.6526 17,430 3/9/2016
2.1.0.6524 36,000 3/2/2016
2.1.0.6521 11,998 3/1/2016
2.1.0.6517-pre5 2,140 2/18/2016
2.1.0.6513-pre4 2,121 2/9/2016
2.1.0.6508-pre3 2,444 1/28/2016
2.1.0.6503-pre2 7,029 1/22/2016
2.1.0.6501-pre1 1,588 1/21/2016
2.1.0.6500-pre1 1,409 1/20/2016
2.0.1.6505 92,519 1/28/2016
2.0.1.6495 74,748 1/20/2016
2.0.1.6492-pre1 3,874 12/3/2015
2.0.0.6490 96,470 12/1/2015
2.0.0.6484 17,777 11/21/2015
2.0.0.6482 236,819 11/17/2015
1.5.2.6478-pre3 1,297 11/17/2015
1.5.2.6477-pre2 3,895 11/10/2015
1.5.2.6469-pre1 2,203 10/20/2015
1.5.1.6471 75,999 10/20/2015
1.5.1.6468 3,920 10/20/2015
1.5.1.6460-pre2 1,678 10/13/2015
1.5.1.6455-pre1 3,030 10/2/2015
1.5.0.6447 53,849 9/25/2015
1.5.0.6446 21,535 9/16/2015
1.5.0.6404-pre3 3,325 8/25/2015
1.5.0.6401-pre2 1,529 8/21/2015
1.5.0.6396-pre1 1,986 8/5/2015
1.4.4.6449 2,723 9/25/2015
1.4.4.6443 1,674 9/16/2015
1.4.4.6392 76,447 7/29/2015
1.4.4.6391 2,035 7/28/2015
1.4.4.6387 2,974 7/27/2015
1.4.4.6379-pre3 1,558 7/20/2015
1.4.4.6378-pre2 1,385 7/16/2015
1.4.4.6377-pre1 1,379 7/14/2015
1.4.3.6376 41,545 7/9/2015
1.4.3.6374 16,583 7/1/2015
1.4.3.6372 2,094 6/30/2015
1.4.3.6364-pre3 2,349 6/16/2015
1.4.3.6358-pre2 5,779 4/24/2015
1.4.3.6356-pre1 1,484 4/21/2015
1.4.2.6359 61,364 4/30/2015
1.4.2.6355 14,294 4/21/2015
1.4.2.6353-pre2 2,527 3/31/2015
1.4.2.6350-pre1 1,586 3/30/2015
1.4.1.6349 44,317 3/30/2015
1.4.1.6347-pre2 3,264 3/19/2015
1.4.1.6342-pre1 1,727 3/10/2015
1.4.0.6341 28,763 3/9/2015
1.4.0.6340-pre2 2,552 3/6/2015
1.4.0.6336-pre1 1,550 3/3/2015
1.3.5.6337 5,133 3/5/2015
1.3.5.6335 24,698 3/2/2015
1.3.5.6333-pre1 2,115 2/17/2015
1.3.4.6332 18,916 2/17/2015
1.3.4.6331-pre4 1,576 2/13/2015
1.3.4.6329-pre3 1,312 2/12/2015
1.3.4.6328-pre2 1,314 2/11/2015
1.3.4.6325-pre1 1,280 2/9/2015
1.3.3.6323 52,500 2/9/2015
1.3.3.6322-pre3 1,276 2/6/2015
1.3.3.6321-pre2 1,436 2/4/2015
1.3.3.6318-pre1 1,443 2/2/2015
1.3.2.6316 7,740 2/3/2015
1.3.2.6313-pre3 1,421 1/30/2015
1.3.2.6309-pre2 1,466 1/28/2015
1.3.2.6299-pre1 2,179 1/20/2015
1.3.1.6296 55,247 1/4/2015
1.3.1.6294-pre1 4,470 12/24/2014
1.3.0.6292 9,609 12/24/2014
1.3.0.6286-pre4 2,180 12/19/2014
1.3.0.6284-pre3 1,680 12/12/2014
1.3.0.6280-pre2 1,632 12/9/2014
1.3.0.6275-pre1 7,910 11/12/2014
1.2.3.6257 38,806 10/2/2014
1.2.3.6256-pre4 2,323 9/26/2014
1.2.3.6255-pre3 2,725 9/20/2014
1.2.3.6249-pre2 1,895 9/9/2014
1.2.3.6246-pre1 4,440 8/15/2014
1.2.2.6243 28,587 7/30/2014
1.2.2.6241-pre3 2,831 7/28/2014
1.2.2.6240-pre2 4,670 7/22/2014
1.2.2.6238-pre1 3,802 7/17/2014
1.2.1.6229 8,536 7/14/2014
1.1.1.6206 14,252 6/19/2014
1.1.0.6201 13,508 6/12/2014
1.0.6197 4,241 6/4/2014
1.0.6188 11,740 5/28/2014
Show less