Xamarin.Forms 2.3.3.193

BryanHunterXamBryanHunterXam Bryan HunterUSXamarin Team Xamurai
edited February 23 in Xamarin.Forms Releases

Important notes

  • Xamarin.Forms 2.3.3 depends on a Xamarin installation of Cycle 8. Users upgrading from Xamarin.Forms 2.3.2 (or earlier) will experience numerous compile errors if they attempt to build without first upgrading their Xamarin installation.
  • 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.
  • In 2.3.3 we are deprecating Classic support (More info here).

Breaking changes

  • [UWP] TabbedPage ContentPresenter is now of type FormsPresenter instead of TabbedPagePresenter. This is an internal change only that will only affect users explicitly targeting TabbedPagePresenter in the UWP project.

2.3.3.193

Nuget package here.

Release Notes

Nuspec change to Android dependencies. When targeting framework 7.0 or greater you many use Android support libraries with API 23 or greater, and Maps with API 29 or greater.
No other changes.

2.3.3.180

Nuget package here.

Release Notes

Add authenticode signing.
No other changes.

2.3.3 sr1

Nuget package here.

Bug Fixes

  • 47707 - "47707 – Page.Toolbar is covering page.content with XF.UWP on Windows 10 phone" (PR)
  • 47295 - "[UWP] Toolbar is Clipped When Using a NavigationPage" (PR)
  • 47950 - "2.3.3 Regression: XAML compilation fails with behavior property and StaticResource" (PR)
  • 47971 - "XF UWP ListView Items no longer display" (PR)
  • 48105 - "Xamarin.Forms.Theme ResourceDictionary MergedWith fails in current build" (PR)
  • 48158 - "Hidden controls become transparent, static property does not bind" (PR)
  • 48242 - "Binding to constants not working any more in Xamarin Forms 2.3.3" (PR)
  • 48554 - "Bound static property does not call setter in custom view" (PR)
  • 48726 - "[UWP] Toolbar Covering Page Content" (PR)
  • [XamlC] assigned derived type to generic BP (PR)
  • [Xaml] support non-int enums (PR)

2.3.3 stable

Nuget package here.

Bug Fixes

  • 46195 - "Navigation Stack Errors in Xamarin.Forms.2.3.3.163-pre3" (PR)

2.3.3-pre4

Nuget package here.

Bug Fixes

  • 44338 - "Displaying context action causes ArgumentNullException when another item's context actions are already displayed on iOS10." (PR)
  • "[Win] Toolbar placement works with initial value" (PR)
  • "[Android] SoftInputMode works with initial value" (PR)

2.3.3-pre3

Nuget package here.

Bug Fixes

  • 44129 - "[Forms Android] Removing and adding items to TabbedPage BindingContext crashes the app when VM uses MvvmLight property Set()-method" (PR)
  • 44166 - "41166 - Fix MasterDetailPage/NavigationPage leaks on iPad" (PR)
  • 44596 - "Grey/Blank Screen when switching MainPage to MasterDetail with TabbedPage" (PR)
  • 45010 - "[2.3.3] 45010 – Forms Sample "WorkingWithListview" throw exception with WinPhone8.1" (PR)
  • 44166 - "MasterDetailPage instances do not get disposed upon GC; instance accumulation crashes app with OOM error using Forms 2.3.2.118-pre1 and AppCompat" (PR)
  • Don't unsubscribe/resubscribe the listener to the same INPC (PR)
  • 44886 - "UWP Listview ItemSelected event triggered twice for each selection" (PR)
  • [iOS] Fixes KVO native binding (PR)
  • Make CreateNativeControl virtual instead of abstract (PR)
  • 43993 - "iOS: ListView size does not return to normal after keyboard disappears" (PR)

  • 39768 - "PanGestureRecognizer sometimes won't fire completed event when dragging very slowly" (PR)

  • 42602 - "Custom BoxView Renderer Does Not Render All Its Children Elements" (PR)
  • [Xaml] Xaml native views and bindings for WP8.1 (PR)
  • [XamlC] Compiled converters (PR)
  • [Xaml] allow compatible arguments for x:Factory (PR)
  • [XAMLC] specify type and default value for native bindings (PR)
  • [2.3.3-pre2] [XamlC] supports enum and consts in x:Static (PR)
  • Reuse Handler when invoking on main thread (PR)

2.3.3-pre2

Nuget package here.

New Features

Support native view declaration in Xaml, and native Bindings

The following Xaml is valid, and works as expected:

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:ios="clr-namespace:UIKit;assembly=Xamarin.iOS;targetPlatform=iOS"
             xmlns:androidWidget="clr-namespace:Android.Widget;assembly=Mono.Android;targetPlatform=Android"
             xmlns:formsandroid="clr-namespace:Xamarin.Forms;assembly=Xamarin.Forms.Platform.Android;targetPlatform=Android"
             xmlns:win="clr-namespace:Windows.UI.Xaml.Controls;assembly=Windows, Version=255.255.255.255, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime;targetPlatform=Windows"
       x:Class="Xamarin.Forms.Controls.XamlNativeViews">
    <ContentPage.Content>
        <ios:UILabel Text="{Binding NativeText}" View.HorizontalOptions="Start"/>
        <androidWidget:TextView Text="{Binding NativeText}" x:Arguments="{x:Static formsandroid:Forms.Context}" />
        <win:TextBlock Text="Foo"/>
    </ContentPage.Content>
</ContentPage>
  • native views are automagically wrapped into the appropriate wrapper
  • xmlns defined on a non-matching targetPlatform (see TargetPlatform enumeration) are ignored
  • you can bind to property of native views. A proxy is created on the fly for supporting 2-Way bindings if possible. If the native property doesn't implements INPC, or support Observable (on iOS), or is a DependencyProperty (on UWP), you can pass an UpdateSourceEventName parameter to the binding expression.
  • if you set, or bind to, attached BindableProperty to a native view that will be wrapped in a X.F.View, those property values and binding are transferred to the wrapper. See HorizontalOptions in the sample above.

Platform Specifics

Introducing Platform Specifics! Features or behaviors that apply to one platform only can now be implemented without requiring custom renderers. These new features/behaviors can then be accessed easily via a fluent code API or XAML.

Vendors can easily add their own Platform Specifics by attaching Effects to them (see 63a924d and 1f9482e for complete example).

This feature implements the framework that enables the new API and also includes several examples of platform specific features, which can be previewed using the Platform Specifics gallery page:

  • Blur support for any VisualElement on iOS
  • Translucent navigation bar on iOS
  • Partially collapsed navigation bar (with icons!) on MasterDetailPage on Windows
  • Toolbar placement options on Windows
  • AdjustResize/AdjustPan on Android (known issue: AdjustResize disables status bar color)

Bug Fixes

  • 32733 - "32733 – Switching Activity crash in 1.4.4.6392" (PR)
  • 35132 - "35132 – Pages are not collected when using a Navigationpage"
  • 39768 - "PanGestureRecognizer sometimes won't fire completed event when dragging very slowly" (PR)
  • 39908 - "Back button hit quickly results in jumbled pages" (PR)
  • 41463 - "CarouselView Crashes with "Sequence Does not Contain a Matching Element""
  • 42061 - "App crashes when registering an app link entry with invalid thumbnail url" (PR)
  • 42112 - "42112 - CarouselView throws error on Android while moving"
  • 42341 - "Page not removed from NavigationStack when hit Back quickly on iOS" (PR)
  • 42519 - "Text Truncation in UWP"
  • 42697 - "Slow swipe - System.InvalidOperationException: Sequence contains more than one element [CarouselView]"
  • 43230 - "DisplayAlert returns unexpected value when Escape key hit on UWP" (PR)
  • 43328 - "DisplayActionSheet() double-tap NullReferenceException crash Win8.1" (PR)
  • 43354 - "Button IsEnabled binding is position dependent" (PR)
  • 43450 - "Faulty syntax of Grid.RowDefinition wasn't caught with XamlC"
  • 43516 - "[UWP] Changing FontAttribute on a label to NONE changes font size as well" (PR)
  • 43530 - "[Android] Resuming app throws IllegalStateException from fragment manager"
  • 43726 - "Setting TabbedPage.ItemsSource to Null Causes Crash" (PR)
  • 43774 - "Appearing does not trigger for the first time for Tabpages in Android" (PR)
  • 43892 - "Xamarin.Forms.TabbedPage with FormsAppCompatActivity OnAppearing Troubles"
  • 44056 - "Picker Focused/Unfocused events not fired on iOS 10 preview" (PR)

Other fixes

  • iOS10 fixes

2.3.3-pre1

Only internal. There were no public artifacts/nuget packages for pre1.

«1345678

Posts

  • AlessandroCaliaroAlessandroCaliaro Alessandro Caliaro ITMember ✭✭✭✭✭

    @BryanHunterXam does Native view declaration work only on Shared Projects?

  • StephaneDelcroixStephaneDelcroix Stephane Delcroix USInsider, Beta ✭✭✭✭

    @AlessandroCaliaro no, it works in PCL too, but only with XamlC off

  • StephaneDelcroixStephaneDelcroix Stephane Delcroix USInsider, Beta ✭✭✭✭

    @NMackay the OnIdiom<> in StaticResource with XamlC is fixed in this release

  • AlessandroCaliaroAlessandroCaliaro Alessandro Caliaro ITMember ✭✭✭✭✭

    @StephaneDelcroix are you saying that we have Native Controls in PCL? Do we have it also in Code or only in XAML?

  • StephaneDelcroixStephaneDelcroix Stephane Delcroix USInsider, Beta ✭✭✭✭

    @AllessandroCaliaro: that's what I'm saying, yes. You can declare native controls in PCL, and native bindings to them. As the xaml is inflated at runtime, all the native stuffs are resolved by that time.

    Do not try your luck and add x:Name to Native Views in a PCL. That will create a variable of the native type and will cause a compilation error. The Force is strong, but not that strong.

  • AdrianKnightAdrianKnight Adrian Knight USMember ✭✭✭✭

    @BryanHunterXam Thanks for another update.

    • Can you create a developer guide for platform specifics for those who won't see this announcement?
    • Can you create a developer guide explaining conventions you use for unit / ui testing? I see a lot of classes named Bugzilla[BugID] that derive from ContentPage. Are these for playground while fixing bugs? What are those gallery pages? I noticed most people submit PRs without tests which makes me believe regression bugs are inevitable. An end-to-end walkthorough would be great.
    • Also, I'd love to see feature requests being upvoted / discussed by the community. I know there is a UserVoice page somewhere that nobody looks at. Can you permanently pin it to the forum for everybody to see and use?
    • Any way these bugs can be looked at? 43108, 43867, 43706, 42651
  • PaulDiPietroPaulDiPietro Paul DiPietro USXamarin Team Xamurai

    @AdrianKnight: I have a PR up for 43108.

  • voidvoid Tim A. DKBeta ✭✭✭

    Love the new features.

  • AlessandroCaliaroAlessandroCaliaro Alessandro Caliaro ITMember ✭✭✭✭✭

    @StephaneDelcroix can I use Native Controls in Code (C#) in PCL?

  • AdrianKnightAdrianKnight Adrian Knight USMember ✭✭✭✭

    @BryanHunterXam

    Also, I saw that you made changes to CarouselView. Shouldn't those fixes be listed on https://forums.xamarin.com/discussion/69120/carouselview-2-3-0-pre2/p1 and require a nuget update?

  • NMackayNMackay Norman Mackay GBInsider, University ✭✭✭✭✭

    @StephaneDelcroix

    Thanks for sorting that and letting me know.

    If you use platform specific native view feature will XamlC always be switched of or is it for this beta? I'm just trying to get my head around if we can use this feature in complex views that rely on XamlC for performance.

  • StephaneDelcroixStephaneDelcroix Stephane Delcroix USInsider, Beta ✭✭✭✭

    @NMackay XamlC won't be switched off. But you have to switch it off for views using native views (you can turn it on or off at the Class level)

  • AlessandroCaliaroAlessandroCaliaro Alessandro Caliaro ITMember ✭✭✭✭✭

    @AlessandroCaliaro said:
    @StephaneDelcroix can I use Native Controls in Code (C#) in PCL?

    An answer?

  • MichaelRumplerMichaelRumpler Michael Rumpler ATMember ✭✭✭✭
        xmlns:win="clr-namespace:Windows.UI.Xaml.Controls;assembly=Windows, ..., ContentType=WindowsRuntime;targetPlatform=Windows"
    

    @StephaneDelcroix , how can you differentiate

    • Windows Phone 8.0 Silverlight
    • Windows RT
    • Windows UWP

    @TheRealJasonSmith said long ago, that OnPlatform doesn't work for those cases and that you think about a better solution. Have you found one? - Or will Silverlight just be deprecated and RT assumed to be the same as UWP?

  • NMackayNMackay Norman Mackay GBInsider, University ✭✭✭✭✭

    @StephaneDelcroix

    Just for clarity, if I have a tabbed page/view with 5 tabs and say I wanted to surface a native control in tab 5 I'd have to disable XamlC for the entire view?

    I'm guessing the ability to change the toolbar will be popular so can the toolbar features be used with XamlC without exposing native views or does using any platform specific feature disable XamlC?

    I'm just trying to think ahead where we can use these features.....which are great btw!

  • StephaneDelcroixStephaneDelcroix Stephane Delcroix USInsider, Beta ✭✭✭✭

    @NMackay if you define your tabbed page and all the content in a single xaml file, then yes. If you can isolate the the view containing the native part to a single file, only disable XamlC on that one.

    We are working on making this feature works with XamlC on, but we don't know yet when it'll be released

  • NMackayNMackay Norman Mackay GBInsider, University ✭✭✭✭✭

    @StephaneDelcroix

    Thanks for clarifying. Once this feature is working sweetly it will be really popular.

  • StephaneDelcroixStephaneDelcroix Stephane Delcroix USInsider, Beta ✭✭✭✭

    @MichaelRumpler

    It's quite easy: WP8 and WinRT are the ones no one uses, UWP is the other :grin: :grin: :grin:

    More seriously: just like OnPlatform, this feature uses the TargetPaltform which doesn't differentiate between the different windows flavors :(

  • StephaneDelcroixStephaneDelcroix Stephane Delcroix USInsider, Beta ✭✭✭✭

    @AlessandroCaliaro : no, that would not compile.

  • AlessandroCaliaroAlessandroCaliaro Alessandro Caliaro ITMember ✭✭✭✭✭

    @StephaneDelcroix thanks. Maybe in an other release??

  • StephaneDelcroixStephaneDelcroix Stephane Delcroix USInsider, Beta ✭✭✭✭

    @AlessandroCaliaro: no, never

  • StephaneDelcroixStephaneDelcroix Stephane Delcroix USInsider, Beta ✭✭✭✭

    @NMackay sorry for the confusion, but the fix for the issue about resources/onplatform/xamlc is not included in this release. that'll be for the next one

  • imkowJackimkowJack imkow Jack CNMember ✭✭

    please checkout this issue: https://github.com/luberda-molinet/FFImageLoading/issues/313

    Xamarin.Forms 2.3.3.152-pre2 Could not load type 'FFImageLoading.Forms.Droid.CachedImageRenderer'

    QUOTE: "I can be wrong but this seems to be a problem with every library that implement a custom Renderer and not with Prism. The latest (2.3.3.152-pre2) XF exposes an abstract CreateNativeControl that needs to be implemented on the renderers and all previous UI libraries stopped working for me."

  • AlessandroCaliaroAlessandroCaliaro Alessandro Caliaro ITMember ✭✭✭✭✭

    @StephaneDelcroix said:
    @AlessandroCaliaro : no, that would not compile.

    Sorry for my question but usually I don't use xaml. Now native controls can exist in Pcl using xaml; can I access these native controls in code behind? How? @StephaneDelcroix ?

  • XavierPerseguersXavierPerseguers Xavier Perseguers CHMember ✭✭

    Why is XF not sticking to semantic versioning? 2.3.3-pre2 is introducing new features? How is that possible? I'd prefer a 2.3.3-whatever concentrating on fixing the various and annoying reported bugs under iOS 10 (crashes).

  • DavidDunscombeDavidDunscombe David Dunscombe GBMember ✭✭

    using x:static for an enumeration value in a datatrigger no longer works in 2.3.3 with XamlC (works fine in 2.3.2.127), e.g.

    <Label VerticalOptions="Center" HorizontalOptions="Center">
        <Label.Triggers>
          <DataTrigger TargetType="Label"
                       Binding="{Binding EnumTestValue}"
                       Value="{x:Static local:EnumTest.One}">
            <Setter Property="Text" Value="Hello1" />
          </DataTrigger>
          <DataTrigger TargetType="Label"
                       Binding="{Binding EnumTestValue}"
                       Value="{x:Static local:EnumTest.Two}">
            <Setter Property="Text" Value="Hello2" />
          </DataTrigger>
        </Label.Triggers>
      </Label>
    

    results in MissingFieldException

  • StephaneDelcroixStephaneDelcroix Stephane Delcroix USInsider, Beta ✭✭✭✭

    @DavidDunscombe Thanks for spotting this. See https://github.com/xamarin/Xamarin.Forms/pull/369 for an explanation and a fix that should be included in 1.3.3 final.

    In the meantime, you can disable XamlC for that View and everything should be back to working.

  • SoerntPoppeSoerntPoppe Sörnt Poppe DEUniversity ✭✭

    @TonyD said:
    @BryanHunterXam when can we expect the fix for XF Android perf? https://bugzilla.xamarin.com/show_bug.cgi?id=42335

    Can you please commit to an ETA or otherwise update the bug if your team doesn't believe it is able to improve perf?

    +1 @BryanHunterXam

  • OliverAlfonsoOliverAlfonso Oliver Alfonso USMember

    Will this issue be resolved anytime soon?

    https://bugzilla.xamarin.com/show_bug.cgi?id=41426

    Or anyone who knows a workaround for this? :tired_face:

  • JKayJKay James Kennedy USMember ✭✭✭

    @TonyD said:
    @BryanHunterXam when can we expect the fix for XF Android perf? https://bugzilla.xamarin.com/show_bug.cgi?id=42335

    Can you please commit to an ETA or otherwise update the bug if your team doesn't believe it is able to improve perf?

    +1

  • WiktorKonckiWiktorKoncki Wiktor Koncki USMember ✭✭

    @TonyD said:
    @BryanHunterXam when can we expect the fix for XF Android perf? https://bugzilla.xamarin.com/show_bug.cgi?id=42335

    Can you please commit to an ETA or otherwise update the bug if your team doesn't believe it is able to improve perf?

    I really like all those +1s so will add one for myself

  • tgodltgodl Thomas Görlich DEMember ✭✭

    I get the following error with the latest Xamarin.Forms and CarouselView pre packages:

    System.TypeLoadException: Could not load type 'Xamarin.Forms.Platform.CarouselViewRenderer' from assembly 'Xamarin.Forms.CarouselView, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
    

    Is someone else seeing this as well and are there any workarounds? The app works on UWP ... couldn't test iOS yet.

«1345678
Sign In or Register to comment.