Quick Links

Xamarin.Forms 1.4.3 Released

Please make sure you update to the latest version of Xamarin when using this release.

Enhancements

Android ActivityIndicator Color property now works for Android 5.0+

WinPhone 8.0 ActivityIndicator Color property now works

[WinRT] Now properly supports Color.Accent

[WinRT] Assorted performance and correctness fixes

[WinRT] PageRenderer.OnElementChanged is now virtual

[Android] Properly support DatePicker.MinimumDate and DatePicker.MaximumDate

[Xaml] Speed up parsing/understand of predefined colors by removing reflection

[Docs] Add documentation for missing summaries

[Core] Binding now supports binding to dynamic objects, such a json objects.

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.

[Core] - ListView no longer leaks cells for items that have been removed from the ItemsSource

[Core] Fix corner case where PushModalAsync could end up pushing pages in the wrong order.

[WinRT] Page.Disappearing now works correctly

[WinRT] NavigationPage.Padding now respected correctly

[WinRT] Various fixes for Page.IsBusy

[WinRT] TabbedPage no correctly lays out children

[Android] ScrollTo no longer off by one in ListView using Headers

[Android] Fix crash when using non-existent image as the Icon for a ToolbarIcon

[Android] Add some missing warning messages

[Android] Fix crash with malformed ViewCells

[iOS] Default Keyboard now matches platform default

[iOS] Fix crash when dismissing popover from ContextActions

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.

Ruhh rohhh. I have an issue with loading my application now. At LoadApplication in android I get this error and then it bombs out:
System.MissingMethodException: Method 'ProgressBar.set_IndeterminateTintList' not found.

Ruhh rohhh. I have an issue with loading my application now. At LoadApplication in android I get this error and then it bombs out:
System.MissingMethodException: Method 'ProgressBar.set_IndeterminateTintList' not found.

What target/compile version of Android is your app set to? It should be "Use Latest Platform" or at least API Level 21. (Note this is not the same as the minimum that your app supports.)

AHAHHA YEEESSSSS!!!! All those annoying An Unhandled Exception has occured are gone!!! WOOOP! I am still getting all the "Exception: System.NullReferenceException: Object reference not set to an instance of an object" on binding property changes but heck ya!

The bug 28575 (about list view.header = null) now is solved, but I have a problem setting the header (or I have not understand how it works).
This is only for iOS.

I have a Page with a listview and 2 buttons. The first button SET the list view header to a label (or to a string ...), the seconds set the header to null.

In Android, it's all Ok.
In iOS, setting the header to a string give no result.
Setting the header to label, the first time do nothing. The second time, throw an exception (if i have not clicked the "Unset" button first)

There is a hotfix coming in shortly to resolve a potential crasher. Technically this is not a regression fix since the bug predates 1.4.3, however a different bug fix has made it easier to trigger this other issue. Therefor we are going to publish a hotfix as soon as it is available.

Minor behavior change - Entry controls now seem to have CapitalizeSentence flag set on their keyboard. I haven't found a way to override this (aside from a custom renderer). I could use Keyboard.Create(flags) to override it if there was a KeyboardFlags.None, but there isn't.

It's not a huge new bug but quite annoying for me since it hits the very first field in an app (case-sensitive login).

I do appreciate all of the stability improvements though. Looking forward especially to fewer random navigation crashes in WinPhone.

@KeithRome can you please explain what was broken for you? If there was a behavioral change beyond what we expected I would very much like to know, if for no other reason than to make sure it is documented.

@TheRealJasonSmith The WebView is still the same and hasn't been touched (other than one bug) even though you and some other Xamarin people have told me to look into this. In particular I am talking about the bug https://bugzilla.xamarin.com/show_bug.cgi?id=29139. I tested the bug again, against the new Forms release. It works on newer android devices, doesn't work on android and iOS simulators at all and on older android devices it doesn't even work to call a simple link. Please see my updated bug entry for details. I have been waiting for months now and was always told to wait for this Forms release. I can't release my app because of this! Please respond. I am happy for you to respond in my bugzilla bug entry.

@TheRealJasonSmith: the default Keyboard for Entry controls appears to have changed between 1.4.2 and 1.4.3. In 1.4.2, the default behavior was to not enable auto capitalize, but in 1.4.3 the behavior is the same as setting Keyboard to Keyboard.Create(KeyboardFlags.CapitalizeSentence). I didn't see this mentioned in the release notes so was not expecting it.

Shane Pope pointed out that I can work around this by setting MyEntryControl.Keyboard = Keyboard.Create(0); in the code-behind. That workaround is valid and has resolved my problem.

Xamarin Studio still doesn't like it though, and reports an IDE error complaining about not being able to implicitly convert 'int' to 'KeyboardFlags'. A hard cast might get it to stop complaining (I didn't try that - it still compiles just fine even with the IDE error).

@RogerSchmidlin yes the webview is still in progress. The bug was reported 6 weeks ago and was rated as a medium priority to you for some reason. I don't know why. I have modified this property as this is clearly not the case. That said this category of bug is not going to outrank crash fixes.

@KeithRome yes the hard cast will resolve the whining from XS. I will look into the change and make sure it's what we intended (I simply don't remember right now, but I believe it is changed for consistency).

@TheRealJasonSmith try 11 weeks since I reported it. and I talked with you guys way before that. And it does crash my app on the android simulators and does not work at all on older android devices, see my log in bugzilla. So I think it is quite critical and long due. I think you might have looked at the wrong bug, the priority hasn't changed on mine

@RogerSchmidlin right you are! I misread the timestamp, my mistake! I see now its causing crashers for you, I have adjusted its priority.

EDIT - I just validated the cause of the navigation issues and the crashes. The crash is an android issue on the sim. The navigation issues is because the nav is being done by updating the url via javascript. This is currently unsupported. I have modified the bug to reflect the feature request.

@TheRealJasonSmith It seems, that I have problems with ListView and IsVisible on an iOS device with iOS 7.1.1. If a ListView is set to IsVisible=true, the content isn't redrawn correct. There are some entries missing at the bottom. To be correct, if I set IsVisble from false to true, the whole (old) content is shown and than the ListView is redrawn and the 2 last entries are gone. If I select an entry, the last 2 entries are redrawn again. If I move the content of the ListView or select an entry, the missing entries are drawn. Tapping in the free part of the ListView doesn't change anything.

Error 14 Could not create the Java Virtual Machine. .Android\COMPILETODALVIK .Droid
Error 15 A fatal exception has occurred. Program will exit. .Android\COMPILETODALVIK .Droid

I got round it by removing most of the Google play services. Completely removed Forms & Maps from droid, cleaned, restarted VS and added Forms and Maps via the Solution Nuget manager and it just added the maps libraries rather than the whole plethora of Google Play libs.

Thanks for getting back to me. Thought I'd post it here in case anyone else ran into that issue.

@TheRealJasonSmith Sorry, I don't have a usecase, but I created a movie from my app. How you could see, the ListView isn't full drawn. The lower part is empty.

I use a StackLayout, which contains four different entries (StackLayout, Label, ListView, MapView), which are visible regarding the buttons below the field. If you select a ListView entry, a new Page is displayed.

Now the ListView is actually working worse in my app. Replacing an item on the fly with groups, and uneven rows. Previously this configuration would leave the custom headers blank periodically, now the headers are working but the cells are blank. Sweet.

After I navigate to a page where I have a listview for the first time, and tap on the items, the itemtapped event is fired correctly and everything workes just fine.

However when I leave this page, by navigating backwards, then come back to the page, the itemtapped event is not fired on some of the items. When I come back to the page a third time, none of the itemtapped events are fired on any of the items.