Xamarin.Forms 1.4.3-pre3 Released

XamarinReleaseXamarinRelease USMember Xamurai
edited June 2015 in Xamarin.Forms

If you are using Xamarin Studio you will need to install the nuget packages by unzipping the nuget and referencing the dlls/targets by hand until this bug is fixed: https://bugzilla.xamarin.com/show_bug.cgi?id=26205

Notes

This release requires the usage of the Xamarin Alpha Channel to ensure a working debugger. If your debugger is still not working with your Xamarin.Forms PCL or native code, please file a bug against the debugger project directly. Please include all the information you can and the most concise reproduction you have.

Enhancements

  • Android ActivityIndicator Color property now works for Android 5.0+
  • WinPhone 8.0 ActivityIndicator Color property now works

API Changes

Xamarin.Forms.ItemsView now contains a protected virtual void UnhookContent (TVisual content) method. This method is used for unhooking or otherwise cleaning content after usage. While the risk is low, this can be a breaking change for you app if you happen to have provided a method with the same name and the same parameters on a subclass of ItemsView, e.g. ListView. Please check your code if this is the case.

XAML

  • XAMLC has been removed from this release.

Bug Fixes

  • Bug 31029 - [Windows Phone 8.1]Generating an Image via MemoryStream does not appear
  • Bug 30935 - NullReferenceException in ViewRenderer<TView, TNativeView> (Xamarin.Forms.Platform.Android)
  • Bug 30861 - Entry text has wrong default value on Android
  • Bug 30251 - MasterDetail page's right area of detail page cannot receive touch on spit mode
  • Bug 30169 - Compiled form with a dynamic resource reference throws a BindableObject:SetDynamicResource exception
  • Bug 30074 - Multiple DataTriggers on same data bound property don't always trigger (XAML)
  • Bug 29861 - latest pre-release screws up breakpoint debugging
  • Bug 29508 - [WinPhone] Clicking back button twice quickly form second page to exit app causes app to crash.
  • Bug 29453 - Navigation.PopAsync(false) in Entry.Completed handler => System.ArgumentException
  • Bug 29363 - Pushing and then popping a page modally in succession causes an exception.
  • Bug 29344 - Fix crash in messaging center / unsubscribe on callback - TableView Collection was modified enumeration operation may not execute
  • Bug 29270 - Xamarin.Forms 1.4.2.6355: OpenGlView is broken
  • Bug 29247 - iOS Device.OpenUri breaks with encoded params
  • Bug 29229 - Fix crash on ListView on Windows Phone
  • Bug 29128 - If VerticalOptions not explicitly set on a Slider on Android, the two parts of the Slider are separated when drawn
  • Bug 29107 - ScrollView text overlaps
  • Bug 29017 - Pin Clicked does not fire (iOS at least)
  • Bug 28952 - NullReferenceException when setting MainPage for first time in OnStart
  • Bug 28901 - WebView not allowing DOM Storage
  • Bug 28821 - Application crashes when ContentPage in TabbedPage has its IsVisible property set to false.
  • Bug 28796 - Crash on Tab change
  • Bug 28765 - Slider Value property binds OneWay by default
  • Bug 28689 - Xaml: Type argument mandatory for x:Array extension
  • Bug 28575 - listview header set to null
  • Bug 28545 - AbsoluteLayout attributes don't work in a style
  • Bug 28335 - NRE when pushing/popping a page quickly
  • Bug 28045 - [Android] ImageRenderer assumes that the control is a FormsImageView
  • Bug 28001 - TabbedPage: invisible tabs are not Disposed
  • Bug 27968 - Resource dictionary throws an Exception when inheriting from a subclass of ContentPage
  • Bug 27779 - Xamarin.Forms.ReadOnlyListAdapter.IndexOf throws NotImplementedExcpetion
  • Bug 27661 - ViewCell IsEnabled set to false does not disable a cell in a TableView
  • Bug 27606 - MasterDetailPage Detail is interactive even when Master is open when in Landscape
  • Bug 27537 - DatePicker control does not behave as other picker controls
  • Bug 27526 - Type ConstraintExpressionExtension not found in xmlns
  • Bug 27270 - Add GeneratedCodeAttribute to generated partial classes
  • Bug 27229 - Failure with SetBinding / [C] Allow Convert in path expressions
  • Bug 26455 - Color GetHashCode returns wrong results
  • Bug 26418 - [Android] ListView does not update when the bound ObservableCollection changes
  • Bug 25845 - Unhandled exception finalizing ListViewAdapter on Android
  • Bug 25662 - Setting IsEnabled does not disable SwitchCell in Forms listview
  • Bug 25400 - XAML x:TypeArguments does not support nested generic types
  • Bug 24910 - Nullable properties throw Property not found exception
  • Bug 24871 - Picker value doesn't get updated when Android "reuses" an old control
  • Bug 24258 - Xamlg issue when declaring generics separated by a space
  • Bug 21744 - Carousel Page iOS CurrentPage bug

Other Fixes

  • Android - Right edge of MasterDetailPage on tablet now handles touches
  • WinRT - First page of TabbedPage doesn't show up until a move or swipe
  • WinRT - ListView.ItemTapped does not fire for already selected items
  • WinRT - ListView now support tapping on the same item multiple times
  • WinRT - ListView supports selected color
  • WinRT - CellControl unloads cell directly rather using DataContext as Cell
  • iOS - Fix UserLocation showing as Pin
  • Packaging - Fix a minor packaging issue
  • Core - ListView no longer leaks cells for items that have been removed from the ItemsSource

There are additional internal fixes and correctness changes. If your bug is not listed here please re-verify against this release. Unfortunately due to the number of issues resolved we are certain we missed some compiling the notes, we apologize.

«1345

Posts

  • bkaankosebkaankose USMember ✭✭
    edited June 2015

    Much needed improvements on WinRT ListView side.Any information on Windows Store apps ? Or atleast native GridView support ?

    Thank you for all the hardwork you've been showing us !

  • TheRealJasonSmithTheRealJasonSmith USXamarin Team Xamurai

    You should see a lot of ListView improvements on the WinRT side. No comment on future features.

  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    @XamarinRelease (or the real Jason):

    Notes
    This release requires the usage of the Xamarin Alpha Channel to ensure a working debugger. If your debugger is still not working with your Xamarin.Forms PCL or native code, please file a bug against the debugger project directly. Please include all the information you can and the most concise reproduction you have.

    Please clarify:
    1.) What exactly is meant with "Xamarin Alpha Channel" ??
    - VS-Integration-Software?
    - if yes, which version exactly?
    - if no, please specify exactly, what is meant

    2.) Does this mean, that debugging don't work at all, if an older version is used or does this mean, that - with the newest Alpha - the debugging should work better?

    Thanks for clarifying

  • TheRealJasonSmithTheRealJasonSmith USXamarin Team Xamurai

    1) Xamarin for Visual Studio 3.11.658 or newer, and Xamarin Studio 5.9.4 or newer

    2) It means there was a bug in the debugger that was causing some users problems, this bug is/should be fixed in the updated versions. If you were not experiencing issues before you likely wont experience any new ones from this release.

  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    @TheRealJasonSmith:
    First, welcome back :smile:

    Sorry - one more question to really make it clear:
    Conclusion:
    - If I don't have problems with the debugger with my actual installed versions and Pre-2 , I don't have to update to 1.) to use pre-3
    => Is that correct?

    Thanks

  • MarkFredricksonMarkFredrickson USMember ✭✭

    Just installed the new release and I get the follow error on all my forms:

    'Xamarin.Forms.Xaml.XamlCompilationAttribute' is inaccessible due to its protection level

    Is this because of your note 'XAMLC has been removed from this release.'? If so, why did you remove form compilation since you fixed some bugs relating to it?

  • rmarinhormarinho PTMember, Insider, Beta Xamurai

    @FredyWenger , yes that's correct.

  • TektonTekton USMember ✭✭✭

    @XamarinRelease @TheRealJasonSmith any word on the thinking behind excluding XAMLC? Was bragging about it, at work, but haven't had a chance to actually use it yet. (lol.) Think I'll have some 'splainin to do.

  • MarkFredricksonMarkFredrickson USMember ✭✭

    @StephaneDelcroix - I believe I found another bug in Xamarin Forms. I have a EULA page and the EULA text is not fully shown in a ScrollView. The bug is out at https://bugzilla.xamarin.com/show_bug.cgi?id=31175.

  • ChaseFlorellChaseFlorell CAInsider, University mod

    That's a mother of a list. Well done.

  • TheRealJasonSmithTheRealJasonSmith USXamarin Team Xamurai

    @Tekton XamlC was removed because of an opportunity we had to continue to prioritize bugs over features in a way we felt best served the community.

  • JeremyHerbisonJeremyHerbison CAMember ✭✭

    And we (I, at least) appreciate it! Can't wait to see this on the stable branch.

  • TheRealJasonSmithTheRealJasonSmith USXamarin Team Xamurai

    @MarkFredrickson you need to break that label out into multiple labels. I forget what the limits are off hand, but some of the platforms have max sizes for labels.

  • TheRealJasonSmithTheRealJasonSmith USXamarin Team Xamurai

    @MarkFredrickson yes lots of android phones are limited to 9000 chars (ish) per TextView.

  • glucoseglucose CNMember

    StaticResource for global style in Android seems broken.

  • TheRealJasonSmithTheRealJasonSmith USXamarin Team Xamurai

    Can you please provide the xaml you are having issues with?

  • glucoseglucose CNMember

    @TheRealJasonSmith
    For the global style, please refer to http://codeworks.it/blog/?p=282
    It works perfectly in Xamarin Forms 1.4.3-pre2, but fail in 1.4.3-pre3
    I figure out the root cause is that the BasedOn style must be in order.

    For example:
    if plainButtonStyle places before colorButtonStyle, then crashes in 1.4.3-pre3, but works in 1.4.3-pre2.
    06-17 12:31:04.975 I/MonoDroid(30533): UNHANDLED EXCEPTION:
    06-17 12:31:04.975 I/MonoDroid(30533): Xamarin.Forms.Xaml.XamlParseException: Position 23:59. StaticResource not found for key colorButtonStyle

    <Application.Resources>
        <ResourceDictionary> 
          <Style x:Key="plainButtonStyle" TargetType="Button" BasedOn="{StaticResource colorButtonStyle}">
            <Setter Property="BorderWidth" Value="0" />
            <Setter Property="BackgroundColor" Value="Transparent" />
          </Style>
          <Style x:Key="colorButtonStyle" TargetType="Button">
            <Setter Property="TextColor" Value="White" />
            <Style.Triggers>
              <Trigger Property="IsEnabled" Value="False" TargetType="Button">
                <Setter Property="TextColor" Value="Gray" />
              </Trigger>
            </Style.Triggers>
          </Style>
        </ResourceDictionary>
      </Application.Resources>
    

    if plainButtonStyle places after colorButtonStyle, then both works.

    <Application.Resources>
        <ResourceDictionary> 
          <Style x:Key="colorButtonStyle" TargetType="Button">
            <Setter Property="TextColor" Value="White" />
            <Style.Triggers>
              <Trigger Property="IsEnabled" Value="False" TargetType="Button">
                <Setter Property="TextColor" Value="Gray" />
              </Trigger>
            </Style.Triggers>
          </Style>
          <Style x:Key="plainButtonStyle" TargetType="Button" BasedOn="{StaticResource colorButtonStyle}">
            <Setter Property="BorderWidth" Value="0" />
            <Setter Property="BackgroundColor" Value="Transparent" />
          </Style>
        </ResourceDictionary>
      </Application.Resources>
    

    I create a sample project to demonstrate the error. Please check attachment.

    App1.zip 157.5K
  • TheRealJasonSmithTheRealJasonSmith USXamarin Team Xamurai

    @glucose I will make sure this gets resolved, thank you for the report.

  • NicolasHotterbeekxNicolasHotterbeekx USMember ✭✭✭

    First of all, GREAT work!

    But I got a little problem:
    Following bug: https://bugzilla.xamarin.com/show_bug.cgi?id=28719 has been set to RESOLVED FIXED.

    But I:

    • Can't find it back in the release notes
    • Still receive the same error: 'The Property TargetType is required to create a Xamarin.Forms.DataTrigger object.'

    Will this be fixed in a (near) future pre-release?

  • StephaneDelcroixStephaneDelcroix USInsider, Beta ✭✭✭✭

    @NicolasHotterbeekx: the issue is fixed for the sample provided in the bug report.

    • Are you declaring your DataTemplate in a ResourceDictionary ?
    • Can you please attach the smallest possible reproduction case to the bugzilla item, and REOPEN it if it fails ?

    Thanks

  • TheRealJasonSmithTheRealJasonSmith USXamarin Team Xamurai

    @glucose further research/discussion within the team reveals two things:

    1) Static resources should not make forward references really according the microsoft. Check out here: https://msdn.microsoft.com/en-us/library/hh758287.aspx?f=255&MSPPError=-2147217396 There is a pretty good reason for this, performance.

    2) We will be attempting to restore basic forward reference support in the same manner, however correct Xaml should attempt to eliminate them.

  • MichaelRumplerMichaelRumpler ATMember ✭✭✭✭✭

    Thank you very much! It's great to see so many bugs fixed.

    "ListView.ItemTapped does not fire for already selected items" is a problem on iOS too though, not only WinRT.
    Bug #26032 was already raised in January but without the info that it only happens when a ContextAction is attached. I added a sample project, but cannot change the status from NEEDINFO to NEW as it is not my bug. I also sent an email to the creator of that bug, but no response.

  • TheRealJasonSmithTheRealJasonSmith USXamarin Team Xamurai

    @MichaelRumpler I have updated the status, thank you for pointing that out.

  • StephaneDelcroixStephaneDelcroix USInsider, Beta ✭✭✭✭
    edited June 2015

    @glucose I filed the issue at https://bugzilla.xamarin.com/show_bug.cgi?id=31182

    I know this used to be supported (and might be supported again in the future), but doing forward references with {StaticResource} is something you shouldn't do:

    Important
    A StaticResource must not attempt to make a forward reference to a resource that is defined lexically further within the
    XAML file. Attempting to do so is not supported. Even if the forward reference doesn't fail, trying to make one carries a
    performance penalty. For best results, adjust the composition of your resource dictionaries so that forward references are
    avoided.

  • glucoseglucose CNMember

    @TheRealJasonSmith @StephaneDelcroix
    I'm just curious that it worked before, but not working in 1.4.3-pre3.
    I also suggest that the error should be reported in compile time but not the debug time.
    In the sample project, the app crashes silently but not break in the xaml while debugging.
    So it really takes some of my time to guess and find the cause, hope that other guys who facing this error will find cause shortly.

    If it is related to performance, maybe current implementation is a good one and you can just ignore my report.
    Anyway, I can fix my code and project can run now. It seems not a big issue for me.

    It is your call to determine which way is the best way.

  • MarkFredricksonMarkFredrickson USMember ✭✭

    @TheRealJasonSmith - I added a sample project to the bug listing. The label does contain the full text so I don't
    think its a label size issue. I also tried two labels and it still scrolled to the same point.

  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    @rmarinho: Thanks for confirming.

    Updated some hours ago (only XF and Maps from Pre-2 to Pre-3)...
    Done some first tests and - unfortunately - found a new killer-bug (hopefully it is only one) to iOS Phones

    Windows Phone:
    Don’t crash anymore if an item from a ListView on a PopUp is selected more than one time.
    Thanks for that :smile:

    ListView (menu in master-detail) ScrollView still only is servable, if content is under the finger (no empty space)
    If - on master-detail-page - empty space is tapped in the menu, the last (wrong) selected item is selected (result: the false page is loaded, what confuses the user -> "I have tapped the entry C -> why is the page to entry B loaded?")
    Details see attached .pdf

    Android:
    ScrollView is still not scrolling to top automatically on Android tablet SM-T900, if an Entry at the end of the ScrollView / Page receive focus (the Entry then is overlapped from the soft-keyboard and the user don’t see it).
    This seems to be specific to Android-tablet and/or the SM-T900 (bug filled already).

    iOS:
    Images still takes too much (white) space (above and under the image)
    Details see attached .pdf


    :warning:Very strange new killer-bug’s that will prevent me, to use Pre-3::warning:

    The bug causes hard crashes on iPhone 5 on Navigation (master-detail -> load new page / dispose old ) and crashes on iPhone 4s earlier (dispose a PopUp with a ListView on a page).
    I first thought, that if have a relation to the data (what is not the case).
    Strange wise don't crash on iPad.
    This has worked without problems on all platforms (including 4s 5 and 5s) with pre-2

    Works on iPad (device), Windows Phone, Android tablet, Android Phone.

    Crashes on iPhone 5 (device) and Emulator (5s)

    Unhandled Exception:

    System.NullReferenceException: Object reference not set to an instance of an object

    On line

    Detail = new NavigationPage(displayPage)
    {
    };
    

    on the master-page

    StackTrace:

    StackTrace  "  at Xamarin.Forms.Platform.iOS.ViewCellRenderer+ViewTableCell.Dispose (Boolean disposing) [0x00032]…" string
    

    I have tried to comprehend, what exactly causes the crash on iPhone for a few hours and am not able to comprehend what exactly causes the problem.
    I also have a (new) crash on iPhone 4s earlier (disposing a PopUp after select an entry from a ListView on the PopUp).

    For me, it seems, that the new bug is triggered in conjunction with bound ListViews when the ItemsSource (in my case a List) is changed and then (later) some elements (pages / views) should be disposed explicit or by XF (load new instance).
    Strange wise not on iPad and not at the same place on iPhone 4s and iPhone 5/5s
    You can find all details in the attached .pdf.

    So.. I think, this is a general problem and should be fixed ASAP (as I think also other will have some “strange problems” with this...

    @TheRealJasonSmith:
    Please give me a feedback ASAP if you can “smell” the problem and ship a new release with a fix for that (very) soon or not.
    If not, I will downgrade to Pre-2.
    I wait for your answer and will checkout the pre-3 more in detail in the meantime.
    Thanks

  • Shane000Shane000 USMember ✭✭✭
    edited June 2015

    On the image whitespace one. I'm not sure if they changed behavior on you but you can control it by creating an ImageRenderer and changing what you need. Here's an example of mine:

    [assembly: ExportRenderer (typeof (ImageCentered), typeof (ImageCenteredRenderer))]
    namespace Company.Mobile.iOS.Views.CustomRenderers
    {
        public class ImageCenteredRenderer : ImageRenderer
        {
            protected override void OnElementChanged(ElementChangedEventArgs<Image> e)
            {
                base.OnElementChanged(e);
                if (e.NewElement != null)
                {
                    Control.ContentMode = UIKit.UIViewContentMode.Center;
                }
            }
        }
    }
    

    You'll have to look at the UIViewContentMode's on iOS to get the behavior you want though.
    PCL class:
    namespace Company.Mobile.Views.CustomRenderers { public class ImageCentered : Image { } }

  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    @ShanePope :
    Thanks for your posting.
    As I wrote, this is not a new problem... and.. it principally works (the image is scaled correct and also hold the correct aspect-ratio - the problem is, that it simply takes to much height what don't look nice...)

    I have already filled a bug (2014-12-08) here:
    https://bugzilla.xamarin.com/show_bug.cgi?id=25148

    First comment (2015-01-08) :

    I have checked this issue and with the help of attached sample I am able to
    reproduce this behavior.

    I have checked this issue on device and simulator and observed that if
    the width of WidthRequest do not fit in the available space the height of an
    image in a ListView is calculated wrong. I have checked this issue on device
    (iPhone 4s 8.2) and simulator and getting the same behavior on both device and
    simulator.

    Last comment from Jason (2015-01-14):


    The final solution to ListView measurement will be given in a later release.
    However it will not be automatic as this bug report expects. There is another
    way to empower the user to perform the expensive measurement call if they
    really want this to happen in this fashion by providing a way to estimate sizes
    of unrealized Views (this will be as slow as doing it normally is).

    That said, we are not going to build this in as an automatic behavior.

    So.. I still hope, that this will be fixed or - at least - that there will be an easy way to do it explicit in XF.
    It should not be necessary, that every user have to care about such problems to be sure that the page (with the image) then looks "normal". I don't want to implement custom renderers for such problems (this should work "out-of the box").

    But, you are right... if this is not adjusted, I unfortunately will have to do it myself :wink:

  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    Update to the new iOS-bug:
    I also have it on the Pad (device) - so it's an iOS-bug (not only Phone) :flushed:

  • DavidTavarezDavidTavarez DOMember ✭✭✭

    Great!! Also! @TheRealJasonSmith is alive! :smiley:

  • BrianRepettiBrianRepetti USUniversity ✭✭✭

    So far the bugs I have been able to check have been resolved! Thank you Xamarin Team!

  • Shane000Shane000 USMember ✭✭✭

    You're doing great, thanks Jason.

  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    @TheRealJasonSmith:
    May I have a short feedback to the new iOS-bug please (you can "smell" it and it will be fixed soon or not)?
    Thanks :smile:

  • RaphaelSchindlerRaphaelSchindler USMember ✭✭✭

    Nice, this release resolved a major showstopper in my app. Great Work :smile:
    Unfortunately I had to add a new bug for the Android part of forms: https://bugzilla.xamarin.com/show_bug.cgi?id=31214

  • DirkWeltzDirkWeltz DEMember ✭✭✭

    Sorry for the stupid question, but how could I install the nuget package by hand? Is there any instruction for this case?

    Thank you.

  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    @DirkWeltz:
    In my starteguide, there is a detailed description to NuGet included:
    http://forums.xamarin.com/discussion/36821/quickstart-guide-to-start-developing-with-xamarin-forms#latest

    Short-version:
    Load the NuGet-Page in boeser and select the package, you want to install
    Copy the command from NuGet-page to clipboard
    In VS, from "Extras/Tools"- menu:
    Select "NuGet-Paket-Manager - "Package manager Console"
    paste the command from clipboard and run it

    But, you should be able do it over the Menu by right click the solution - manage NuGet Packages.
    You have to change to the Alpha channel here, to see the Pre-Versions.
    Hope this helps...

«1345
Sign In or Register to comment.