locked
Xamarin.Forms 2.1.0-pre5 Released RRS feed

  • Question

  • User173875 posted

    Pre-5 Notes

    Bug Fixes

    • [Android] Fix crash when swapping main page
    • [WinRT] Fix case where page could show up blank after a pop command
    • [WinRT] NavigationBar properly respects dark theme
    • [WinRT] Reduce instances of LayoutCycle detected
    • [WP8] Password box no longer reveals password when disabled
    • [iOS] Fix crash when PopAsync is called immediately after PushModal
    • [UWP] Fix MasterDetailPage button color issue on UWP

    (on Nuget)

    Pre-4 Notes

    Enhancements

    • Add Effect.ResolveId

    Bug Fixes

    • Fix crash in WinRT ListView
    • Fix layout issue in WinRT
    • Fix issue where SearchBar.Text didn't always update correctly
    • Clean up navigation bar in WinRT
    • Fix some crashes when navigating in all platforms

    Pre-3 Notes

    • Fix issue where InputTransparent wasn't working correctly in iOS in some cases
    • Fix some cases of Layout Cycle Detected on windows
    • Fix crash on android where the 20th ListView would result in a crash (introduced with DataTemplateSelectors)
    • Fix crash on android when DataTemplateSelectors are used with grouping
    • Fix crash when calling RemovePage on Android AppCompat
    • Fix InsertPageBefore not working properly on Android AppCompat
    • Fix issue in WinRT/UWP ListView not showing data if set after renderer created

    Pre-2 Notes

    • Resolve issue where labels didn't resize correctly
    • Resolve issue where AppCompat backend sometimes crashed when looking for a fragment by resource ID.

    New Features

    ControlTemplates

    ControlTemplates have been introduced into the 2.1.0 branch, and have been included on the following types:

    TemplatedPage and TemplatedView now serve as the base class for ContentPage and ContentView. ControlTemplates can be used to define the visual appearance of a Control or Page while providing a clean separation from the visual hierarchy and the Content itself. ControlTemplates can be applied via Style to greatly expand themeability in Xamarin.Forms.

    Along with ControlTemplates the concept of TemplateBindings has been introduced. TemplateBindings work identically to normal Bindings however their Source is automatically set to the parent of the target view which owns the ControlTemplate. Usage of a TemplateBinding outside of a ControlTemplate is not supported.

    For more details on how to use ControlTemplates see here: http://xfcomplete.net/general/2016/01/20/control-templates/

    DataTemplateSelector

    IDataTemplateSelectors allow the selection of a DataTemplate at runtime per item in a ListView.ItemsSource.

    Usage:

    ```csharp class MyDataTemplateSelector : DataTemplateSelector { public MyDataTemplateSelector () { // Retain instances! this.templateOne = new DataTemplate (typeof (ViewA)); this.templateTwo = new DataTemplate (typeof (ViewB)); }

    protected override DataTemplate OnSelectTemplate (object item, BindableObject container)
    {
        if (item is double)
            return this.templateOne;
        return this.templateTwo;
    }
    
    private readonly DataTemplate templateOne;
    private readonly DataTemplate templateTwo;
    

    } ```

    xml <ListView ItemTemplate=local:MyDataTemplateSelector />

    DataTemplateSelectors have the following limitations:

    • No more than 20 templates per ListView on Android
    • The DataTemplateSelector subclass MUST always return the same template for the same data if queried multiple times
    • The DataTemplateSelector must not return another DataTemplateSelector
    • The DataTemplateSelector must not return new instances of a DataTemplate on each call, instead the same instance must be returned. Failure to do so will effectively disable virtualization and lead to an enormous memory leak. Don't do this.

    Effects

    Effects provide an easy way to customize the native look and feel of controls without having to resort to a complete Custom Renderer. You can use these to customize the native controls, for example, the following Effect shows how to create a Border effect on iOS that will set a 2 pixel purple outline on the control:

    ```csharp // located inside iOS specific codebase public class BorderEffect : PlatformEffect { protected override void OnAttached () { Control.Layer.BorderColor = UIColor.Purple.CGColor; Control.Layer.BorderWidth = 2; }

    protected override void OnDetached ()
    {
        Control.Layer.BorderWidth = 0;
    }
    

    } ```

    To apply this effect, all you have to do is attached it via the IList<Effect> Effects collection on Element. This is a much simpler way of fine tuning your user interface with native touches.

    Other Improvements

    • HasUnevenRows dynamic sizing support;
    • ListView Virtualization is now supported on Windows ;
    • Generic versions of Create () BindableProperty are no longer supported and deprecated;
    • The Entry/Editor updates on WP8 and WinRT are now consistent with other platforms;

    Bug Fixes

    • Bug 21780 - Windows Phone Editor control has black background with black text, background turns to white when editing.
    • Bug 24769 - [Win Phone/winrt] Progress Bar in listview item not working
    • Bug 26868 - GroupHeaders do not extend on Windows Phone and WINRT
    • Bug 30370 - Background Color on an Entry Control is Applied to the Padding
    • Bug 32615 - [Android] OnAppearing is not called on previous page when modal page is popped
    • Bug 32847 - Picker text is cleared after selecting an item, whether Picker, DatePicker, or TimePicker
    • Bug 33268 - Picker is broken on Windows 8.1
    • Bug 33870 - crash when the listview selection is disabled on Windows Phone 8.1 RT
    • Bug 35490 - Label Text Misaligned in Windows Phone 8.1 and WinRT (Xamarin Nuget Version 1.5.1.6471)
    • Bug 35811 - Navigation.PushAsync from TabbedPage then hit back button causes crash
    • Bug 36171 - WinRT Entry UI not updating on TextChanged
    • Bug 36174 - Android Search Bar vertical text alignment in Forms 2.0
    • Bug 36251 - Issues when switching between pages of a TabbedPage on iOS
    • Bug 36422 - XamlC Fails When using X:Array in Xaml. Throws NullReferenceExceptio
    • Bug 36559 - [WP] Navigating to a ContentPage with a Grid inside a TableView affects Entry heights
    • Bug 36649 - LineBreakMode.NoWrap is handled incorrectly on Windows Phone 8.1 RT
    • Bug 36687 - On WinPhone 8.1 RT, the background color used in Entry fields is not as expected
    • Bug 36730 - OnStart / OnResume are not called on WP8.1 and UWP
    • Bug 36778 - ListView on UWP doesn't display Detail line with TextCell
    • Bug 37306 - XamlC doesn´t support adding x:String in resource dictionary
    • Bug 37675 - Style PropertyChanged called before the Style is applied
    • Bug 37779 - TabbedPageRenderer throws exceptions on Android 4.0.4 when using Material Design theme
    • Fixes to OnAppearing/OnDisappearing;
    • Fixes to PanGestureRecognizer on android;
    • Fixes to animation safety;
    • UWP fix headerzoom;
    • Fixes an issue where images sometimes didn't load on WP8;

    Known Issues

    • Windows ListView may show blank in some cases - Fixed in pre3
    • WinRT reloads toolbar items on navigation even when they haven't changed'
    • RoutingEffect API is not final
    • RoutingEffect will not correctly inherit properties - Fixed in point update
    Wednesday, January 20, 2016 6:32 PM

All replies

  • User181025 posted

    Nice to see ControlTemplates. Thanks. :)

    Wednesday, January 20, 2016 7:00 PM
  • User53115 posted

    <ListView DataTemplate=local:MyDataTemplateSelector />

    I'd like to point out that this line of XAML is incorrect. The property should be ItemTemplate (or HeaderTemplate or FooterTemplate), not DataTemplate.

    Wednesday, January 20, 2016 8:54 PM
  • User92610 posted

    on CustomRenderers we export our renderer with [assembly: ExportRenderer (typeof (BaseEntry), typeof (BaseEntryRenderer))]

    Do the effects use ExportEffect or something else?

    Wednesday, January 20, 2016 9:26 PM
  • User352 posted

    @JoeManke fixed

    @ShanePope yes I am writing up a demo now

    Wednesday, January 20, 2016 9:39 PM
  • User139040 posted

    WHAT?!?!?!? ControlTemplates? TemplatedBindings? Effects? !?!?!? BE STILL MY BEATING HEART! I am in love with this update! Best one by FARRRR!!! Cant wait to change up my entire control library. THANK YOU THANK YOU!!!!

    Edit: Thanks again if I wasnt clear.

    Wednesday, January 20, 2016 9:50 PM
  • User4685 posted

    Oh what a release.

    Templates and Effects.... Wow...

    Wednesday, January 20, 2016 10:29 PM
  • User53115 posted

    Testing out the DataTemplateSelector, came across a bug.

    We have a grouped ListView. We were previously using a DataTemplateSelector we wrote ourselves for the ItemTemplate, I'm testing out using the new official one. The ListView also has a GroupHeaderTemplate. OnSelectHeader() of the selector is being called for a group header cell.

    Even after modifying my selector to handle the group headers, and removing the GroupHeaderTemplate from the ListView, I am now getting an ArgumentOutOfRangeException when trying to render this list, with the following stacktrace:

    01-20 17:27:21.405 I/MonoDroid(12004): UNHANDLED EXCEPTION:
    01-20 17:27:21.445 I/MonoDroid(12004): System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
    01-20 17:27:21.445 I/MonoDroid(12004): Parameter name: index
    01-20 17:27:21.445 I/MonoDroid(12004):   at (wrapper dynamic-method) System.Object:14e9ab9c-fba9-45cd-8950-0d21d6817e6f (intptr,intptr,int)
    01-20 17:27:21.445 I/MonoDroid(12004):   at (wrapper native-to-managed) System.Object:14e9ab9c-fba9-45cd-8950-0d21d6817e6f (intptr,intptr,int)
    01-20 17:27:21.445 I/MonoDroid(12004):   at (wrapper managed-to-native) System.Object:wrapper_native_0xb4bbe971 (intptr,intptr,intptr,Android.Runtime.JValue*)
    01-20 17:27:21.445 I/MonoDroid(12004):   at (wrapper delegate-invoke) <Module>:invoke_void_intptr_intptr_intptr_JValue* (intptr,intptr,intptr,Android.Runtime.JValue*)
    01-20 17:27:21.445 I/MonoDroid(12004):   at Android.Runtime.JNIEnv.CallVoidMethod (IntPtr jobject, IntPtr jmethod, Android.Runtime.JValue* parms) [0x00040] in /Users/builder/data/lanes/2512/d3008455/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:567 
    01-20 17:27:21.445 I/MonoDroid(12004):   at Android.Views.ViewGroup.Layout (Int32 l, Int32 t, Int32 r, Int32 b) [0x00082] in /Users/builder/data/lanes/2512/d3008455/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Android.Views.ViewGroup.cs:3763 
    01-20 17:27:21.445 I/MonoDroid(12004):   at Xamarin.Forms.Platform.Android.ViewRenderer`2[TView,TNativeView].OnLayout (Boolean changed, Int32 l, Int32 t, Int32 r, Int32 b) [0x00059] in <filename unknown>:0 
    01-20 17:27:21.445 I/MonoDroid(12004):   at Xamarin.Forms.Platform.Android.ListViewRenderer.OnLayout (Boolean changed, Int32 l, Int32 t, Int32 r, Int32 b) [0x00000] in <filename unknown>:0 
    01-20 17:27:21.445 I/MonoDroid(12004):   at Xamarin.Forms.Platform.Android.FormsViewGroup.n_OnLayout_ZIIII (IntPtr jnienv, IntPtr native__this, Boolean p0, Int32 p1, Int32 p2, Int32 p3, Int32 p4) [0x00008] in <filename unknown>:0 
    01-20 17:27:21.445 I/MonoDroid(12004):   at (wrapper dynamic-method) System.Object:fb67fc11-8e8b-4ce5-92d9-d8b8972d6c15 (intptr,intptr,bool,int,int,int,int)
    
    Wednesday, January 20, 2016 11:28 PM
  • User352 posted

    are you able to get a breakpoint in there and see what values are being passed to OnLayout?

    Wednesday, January 20, 2016 11:31 PM
  • User31385 posted

    Really like the Effects idea. Should be able to get rid of lots of custom renderers whose only purpose in life was to embellish the stock controls just ever so slightly.

    Wednesday, January 20, 2016 11:51 PM
  • User160216 posted

    Thankyou for DataTemplateSelector :smile:

    Thursday, January 21, 2016 5:48 AM
  • User97927 posted

    What about Xamarin.Forms.Maps? Has it googleplayServices 27 as dependency?

    In the nuspec file it is written googleplayservices = 26

    I hope that is a mistake by you!!!

    https://www.nuget.org/packages/Xamarin.Forms.Maps/2.1.0.6501-pre1

    Thursday, January 21, 2016 6:27 AM
  • User352 posted

    Bumping GPS is something we are currently evaluating, every time we do it it has the potential to break LARGE amounts of community code so its not something we do just because a new version came out.

    Thursday, January 21, 2016 6:55 AM
  • User97927 posted

    I saw you downgrade the googleplayservices in Xamarin.Forms. So I don't need the 27.

    I can downgrade my library and my app as well to 26. Thanks for that ;)

    Thursday, January 21, 2016 7:24 AM
  • User75120 posted

    @TheRealJasonSmith

    Looks like a great release - thanks!

    HasUnevenRows dynamic sizing support

    Does this mean I can create a listview and fill the items with varying lengths of text and different sized images images (and now datatemplates!) and it'll resize each cell to fit automagically? Or is there still some calculation needed by the app as well as the framework?

    Thursday, January 21, 2016 7:27 AM
  • User352 posted

    It means that if you do ListView.HasUnevenRows = true you can now call ForceUpdateSize on your cell which will force the cell to dynamically resize, even if it is currently visible. On some platforms this operation can be extremely expensive, so it is not dont automatically, but if you wanted to do so you could hook the MeasureInvalidated event on the Content of your ViewCell and call ForceUpdateSize in there. Again this can be extremely expensive.

    Thursday, January 21, 2016 8:21 AM
  • User130334 posted

    I like the Effects philosophy too!

    I'm not sure I understand what ControlTemplates are for though, what are the use-cases/possibilities with it?

    Thursday, January 21, 2016 8:52 AM
  • User76916 posted

    I believe hell may have frozen over: ListView Virtualization is now supported on Windows

    And those Windows bugs fixes, love it :) (cough still have 9 outstanding)

    And good work with that little side note "template / effects" update thingy you did. :smiley:

    Thursday, January 21, 2016 9:04 AM
  • User352 posted

    Please be aware that the windows support is still in a partial state. While visualization is improved we are still working to further improve memory usage.

    Thursday, January 21, 2016 9:08 AM
  • User139040 posted

    @ThibaultD ControlTemplates and TemplatedBindings are ideas that were used in Sivlerlight & WPF. They let you build true custom controls using just Xamarin Forms. Its a MASSIVE deal! If you would like more info on it really just look up custom control building for Silverlight/WPF. That will give you an idea of how powerful they can be. Also being able to knock a property with Content will be great instead of having developers right XAML like ... to simply fill in the content area because the Content property was already taken by the ContentView. Also YAYYYY to no more a thousand .SetBindings in the code behind!!! We can now set them in the template and the template can be overridden by the developer if they want to change up the control without effecting the purpose of the control.

    Thursday, January 21, 2016 1:41 PM
  • User2148 posted

    Exists doc for Effect and PanGesture?

    Thursday, January 21, 2016 2:44 PM
  • User53115 posted

    @TheRealJasonSmith These are the parameters being passed to OnLayout of the ListViewRenderer: changed = True, l = 24, t = 24, r = 1056, b = 1653

    Looking at my debug output, I'm seeing another stacktrace which I figure is where the exception is really happening:

    (Fatal) - Fatal Exception: Specified argument was out of the range of valid values.
    Parameter name: index   at Xamarin.Forms.ListProxy.get_Item (Int32 index) [0x0000b] in <filename unknown>:0 
    at Xamarin.Forms.Platform.Android.ListViewAdapter.GetItemViewType (Int32 position) [0x00071] in <filename unknown>:0 
    at Android.Widget.BaseAdapter.n_GetItemViewType_I (IntPtr jnienv, IntPtr native__this, Int32 position) [0x00009] in /Users/builder/data/lanes/2512/d3008455/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Android.Widget.BaseAdapter.cs:259 
    at (wrapper dynamic-method) System.Object:5a44bb6a-f09a-4e1f-870f-9d4ee87fddfd (intptr,intptr,int)
    
    Thursday, January 21, 2016 3:07 PM
  • User185333 posted

    My labels in a StackLayout are no longer expanding vertically when there is more text in them.

    Thursday, January 21, 2016 6:53 PM
  • User352 posted

    @BradChase.2654 you mean like doing

    <ContentPresenter Content="{TemplateBinding Body}" />
    

    Inside of your ControlTemplate which binds up to the Body View on your custom class? Because you can. I'll demo it later.

    @RyanHerman.9335 can you show me? What are they packed in? Need more context

    Thursday, January 21, 2016 7:07 PM
  • User352 posted

    @AlessandroCaliaro full docs are being worked on and will be available for stable release. I did blog about Effects if you care to go find that.

    Thursday, January 21, 2016 7:08 PM
  • User185333 posted

    @TheRealJasonSmith I thought it was fixed till I readded all the stackpanels to my layouts. If I just have one or two, it is fine, but I think it struggles w/ multiple expansions.

    Basically all the ServerResponse StackLayouts with the Label.

      <ScrollView>
            <StackLayout Padding="10,10,10,10">
                <Button x:Name="MockData" Clicked="MockData_OnClicked" Text="Mock Up" />
                <Label Text="Username:" />
                <customRenderer:DoneEntry x:Name="username" HorizontalOptions="FillAndExpand" VerticalOptions="Center" />
                <StackLayout Padding="5,0">
                    <Label x:Name="ServerResponseUsername" TextColor="Red" />
                </StackLayout>
                <Label Text="Email:" />
                <customRenderer:DoneEntry x:Name="email" HorizontalOptions="FillAndExpand" VerticalOptions="Center"
                                          Keyboard="Email" />
                <StackLayout Padding="5,0">
                    <Label x:Name="ServerResponseEmail" TextColor="Red" />
                </StackLayout>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <Switch x:Name="getUpdates" Grid.Column="1" VerticalOptions="Center" />
                    <Label Text="Send me ticket and event updates." FontSize="14" Grid.Column="0"
                           VerticalOptions="Center" />
                </Grid>
    
                <Label Text="Password:" />
                <customRenderer:DoneEntry x:Name="password" HorizontalOptions="FillAndExpand" VerticalOptions="Center"
                                          IsPassword="True" />
                <StackLayout Padding="5,0">
                    <Label x:Name="ServerResponsePassword" TextColor="Red" />
                </StackLayout>
                <Label Text="First Name:" />
                <customRenderer:DoneEntry x:Name="firstName" HorizontalOptions="FillAndExpand" VerticalOptions="Center"
                                          Keyboard="Text" />
    
                <Label Text="Last Name:" />
                <customRenderer:DoneEntry x:Name="lastName" HorizontalOptions="FillAndExpand" VerticalOptions="Center"
                                          Keyboard="Text" />
    
                <Label Text="Mobile Phone:" />
                <customRenderer:DoneEntry x:Name="phone" HorizontalOptions="FillAndExpand" VerticalOptions="Center"
                                          Keyboard="Telephone" />
                <StackLayout Padding="5,0">
                    <Label x:Name="ServerResponsePhone" TextColor="Red" />
                </StackLayout>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <Switch x:Name="locationUS" Grid.Column="1" VerticalOptions="Center" />
                    <Label Text="I live in the U.S." FontSize="14" Grid.Column="0"
                           VerticalOptions="Center" />
                </Grid>
    
                <Label Text="U.S Zip Code:" />
                <customRenderer:DoneEntry x:Name="zipCode" HorizontalOptions="FillAndExpand" VerticalOptions="Center"
                                          Keyboard="Numeric" />
                <Label x:Name="ServerResponsZipcode" HorizontalOptions="FillAndExpand"
                       VerticalOptions="FillAndExpand" TextColor="Red" />
                <Label Text="Birth Date" />
                <DatePicker x:Name="birthday" />
                <StackLayout Padding="5,0">
                    <Label x:Name="ServerResponseBirthday" TextColor="Red" />
                </StackLayout>
                <Label Text="Gender" />
                <Picker x:Name="Gender" />
    
                <Label x:Name="ServerResponse" TextColor="White" />
    
                <Button Text="Create Account" HorizontalOptions="FillAndExpand" VerticalOptions="Center"
                        x:Name="createButton" Clicked="CreateButton_OnClicked" />
            </StackLayout>
        </ScrollView>
    
    Thursday, January 21, 2016 7:41 PM
  • User352 posted

    @RyanHerman.9335 think you could boil that down to just the parts that matter OR hop on skype with me and go over this live?

    Thursday, January 21, 2016 8:20 PM
  • User185333 posted

    @TheRealJasonSmith Lets do Skype? How should I contact you?

    Thursday, January 21, 2016 9:44 PM
  • User185333 posted

    @TheRealJasonSmith I found another place where the Label does not expand to the next line. I am thinking it is a problem with the label text going to the next lines.

    Thursday, January 21, 2016 10:37 PM
  • User139040 posted

    @TheRealJasonSmith said: @BradChase.2654 you mean like doing

    <ContentPresenter Content="{TemplateBinding Body}" />
    

    Inside of your ControlTemplate which binds up to the Body View on your custom class? Because you can. I'll demo it later.

    Yup!!! Woooooo excited! Can't say that enough! I felt like I was ugly hacking away there at controls hoping this would come!

    Friday, January 22, 2016 2:29 AM
  • User52818 posted

    I got the same issues with expanding labels. My text gets cut off. My labels are sitting next to a slider, which changes the content of the label. This works fine in the just recent official release but not in the pre release.

    Friday, January 22, 2016 6:20 AM
  • User352 posted

    we're trying to track it down now

    Friday, January 22, 2016 9:23 AM
  • User352 posted

    Which platform are you seeing this behavior on? All?

    Edit: so it turns out UITest doesn't really work to pick up this kind of failure the way we coded the test, woops.

    Edit2: Okay the problem was caused by the change we made to fix this: https://bugzilla.xamarin.com/show_bug.cgi?id=37675 We are reverting the change until we can evaluate a different method of fixing it or if we want to simply codify that behavior as expected.

    Friday, January 22, 2016 9:29 AM
  • User40173 posted

    @TheRealJasonSmith @JoeManke

    I'm seeing exact the same bug when changing our grouped ListView to use the new DataTemplateSelectors:

    I/MonoDroid(11945): UNHANDLED EXCEPTION:
    I/MonoDroid(11945): System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
    I/MonoDroid(11945): Parameter name: index
    I/MonoDroid(11945):   at Xamarin.Forms.ListProxy.get_Item (Int32 index) <0xdaf24490 + 0x00063> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.ListViewAdapter.GetItemViewType (Int32 position) <0xd90f4508 + 0x0010f> in <filename unknown>:0
    I/MonoDroid(11945):   at Android.Widget.BaseAdapter.n_GetItemViewType_I (IntPtr jnienv, IntPtr native__this, Int32 position) <0xd90f44c8 + 0x00039> in <filename unknown>:0
    I/MonoDroid(11945):   at (wrapper dynamic-method) System.Object:fad083cf-8dc2-4a66-a43e-b822c770a6a0 (intptr,intptr,int)
    W/Xamarin.Insights(11945): Warning: Unhandled exception: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
    W/Xamarin.Insights(11945): Parameter name: index
    W/Xamarin.Insights(11945):   at Xamarin.Forms.ListProxy.get_Item (Int32 index) <0xdaf24490 + 0x00063> in <filename unknown>:0
    W/Xamarin.Insights(11945):   at Xamarin.Forms.Platform.Android.ListViewAdapter.GetItemViewType (Int32 position) <0xd90f4508 + 0x0010f> in <filename unknown>:0
    W/Xamarin.Insights(11945):   at Android.Widget.BaseAdapter.n_GetItemViewType_I (IntPtr jnienv, IntPtr native__this, Int32 position) <0xd90f44c8 + 0x00039> in <filename unknown>:0
    W/Xamarin.Insights(11945):   at (wrapper dynamic-method) System.Object:fad083cf-8dc2-4a66-a43e-b822c770a6a0 (intptr,intptr,int)
    W/art     (11945): JNI RegisterNativeMethods: attempt to register 0 native methods for md52ce486a14f4bcd95899665e9d932190b.JavaProxyThrowable
    I/MonoDroid(11945): UNHANDLED EXCEPTION:
    I/MonoDroid(11945): System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
    I/MonoDroid(11945): Parameter name: index
    I/MonoDroid(11945):   at Xamarin.Forms.ListProxy.get_Item (Int32 index) <0xdaf24490 + 0x00063> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.ListViewAdapter.GetItemViewType (Int32 position) <0xd90f4508 + 0x0010f> in <filename unknown>:0
    I/MonoDroid(11945):   at Android.Widget.BaseAdapter.n_GetItemViewType_I (IntPtr jnienv, IntPtr native__this, Int32 position) <0xd90f44c8 + 0x00039> in <filename unknown>:0
    I/MonoDroid(11945):   at (wrapper dynamic-method) System.Object:fad083cf-8dc2-4a66-a43e-b822c770a6a0 (intptr,intptr,int)
    I/MonoDroid(11945): --- End of stack trace from previous location where exception was thrown ---
    I/MonoDroid(11945):   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () <0xd7f5ec40 + 0x0002b> in <filename unknown>:0
    I/MonoDroid(11945):   at Android.Runtime.JNIEnv.CallVoidMethod (IntPtr jobject, IntPtr jmethod, Android.Runtime.JValue* parms) <0xdc070850 + 0x00097> in <filename unknown>:0
    I/MonoDroid(11945):   at Android.Views.ViewGroup.Layout (Int32 l, Int32 t, Int32 r, Int32 b) <0xdaed5670 + 0x00177> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.ViewRenderer`2[TView,TNativeView].OnLayout (Boolean changed, Int32 l, Int32 t, Int32 r, Int32 b) <0xdaed5418 + 0x000ee> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.ListViewRenderer.OnLayout (Boolean changed, Int32 l, Int32 t, Int32 r, Int32 b) <0xdaed5390 + 0x00037> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.FormsViewGroup.n_OnLayout_ZIIII (IntPtr jnienv, IntPtr native__this, Boolean p0, Int32 p1, Int32 p2, Int32 p3, Int32 p4) <0xdaed5208 + 0x00056> in <filename unknown>:0
    I/MonoDroid(11945):   at (wrapper dynamic-method) System.Object:d9c310b2-0dc7-422e-890c-80b7c45f49f6 (intptr,intptr,bool,int,int,int,int)
    I/MonoDroid(11945): UNHANDLED EXCEPTION:
    I/MonoDroid(11945): System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
    I/MonoDroid(11945): Parameter name: index
    I/MonoDroid(11945):   at Xamarin.Forms.ListProxy.get_Item (Int32 index) <0xdaf24490 + 0x00063> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.ListViewAdapter.GetItemViewType (Int32 position) <0xd90f4508 + 0x0010f> in <filename unknown>:0
    I/MonoDroid(11945):   at Android.Widget.BaseAdapter.n_GetItemViewType_I (IntPtr jnienv, IntPtr native__this, Int32 position) <0xd90f44c8 + 0x00039> in <filename unknown>:0
    I/MonoDroid(11945):   at (wrapper dynamic-method) System.Object:fad083cf-8dc2-4a66-a43e-b822c770a6a0 (intptr,intptr,int)
    I/MonoDroid(11945): --- End of stack trace from previous location where exception was thrown ---
    I/MonoDroid(11945):   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () <0xd7f5ec40 + 0x0002b> in <filename unknown>:0
    I/MonoDroid(11945):   at Android.Runtime.JNIEnv.CallVoidMethod (IntPtr jobject, IntPtr jmethod, Android.Runtime.JValue* parms) <0xdc070850 + 0x00097> in <filename unknown>:0
    I/MonoDroid(11945):   at Android.Views.ViewGroup.Layout (Int32 l, Int32 t, Int32 r, Int32 b) <0xdaed5670 + 0x00177> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.ViewRenderer`2[TView,TNativeView].OnLayout (Boolean changed, Int32 l, Int32 t, Int32 r, Int32 b) <0xdaed5418 + 0x000ee> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.ListViewRenderer.OnLayout (Boolean changed, Int32 l, Int32 t, Int32 r, Int32 b) <0xdaed5390 + 0x00037> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.FormsViewGroup.n_OnLayout_ZIIII (IntPtr jnienv, IntPtr native__this, Boolean p0, Int32 p1, Int32 p2, Int32 p3, Int32 p4) <0xdaed5208 + 0x00056> in <filename unknown>:0
    I/MonoDroid(11945):   at (wrapper dynamic-method) System.Object:d9c310b2-0dc7-422e-890c-80b7c45f49f6 (intptr,intptr,bool,int,int,int,int)
    I/MonoDroid(11945): --- End of stack trace from previous location where exception was thrown ---
    I/MonoDroid(11945):   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () <0xd7f5ec40 + 0x0002b> in <filename unknown>:0
    I/MonoDroid(11945):   at Android.Runtime.JNIEnv.CallNonvirtualVoidMethod (IntPtr jobject, IntPtr jclass, IntPtr jmethod, Android.Runtime.JValue* parms) <0xdc10d6f0 + 0x000b3> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.FormsViewGroup.MeasureAndLayout (Int32 p0, Int32 p1, Int32 p2, Int32 p3, Int32 p4, Int32 p5) <0xdaed4f60 + 0x00277> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.VisualElementTracker.UpdateLayout () <0xdaed4c00 + 0x001f2> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[TElement].UpdateLayout () <0xdaed4bd0 + 0x0001f> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[TElement].OnLayout (Boolean changed, Int32 l, Int32 t, Int32 r, Int32 b) <0xdaed5270 + 0x0009e> in <filename unknown>:0
    I/MonoDroid(11945):   at Xamarin.Forms.Platform.Android.FormsViewGroup.n_OnLayout_ZIIII (IntPtr jnienv, IntPtr native__this, Boolean p0, Int32 p1, Int32 p2, Int32 p3, Int32 p4) <0xdaed5208 + 0x00056> in <filename unknown>:0
    I/MonoDroid(11945):   at (wrapper dynamic-method) System.Object:d9c310b2-0dc7-422e-890c-80b7c45f49f6 (intptr,intptr,bool,int,int,int,int)
    
    Friday, January 22, 2016 11:35 AM
  • User352 posted

    @BastiBrauning we're digging into it, are you using the DTS on the ItemTemplate or the HeaderTemplate?

    Friday, January 22, 2016 11:36 AM
  • User40173 posted

    Thanks for the fast response!

    Tried using it on ItemTemplate and GroupHeaderTemplate. (Using it signly on ItemTemplate the same crash occurs).

    Basically this is my ListView:

     <ListView            
                SeparatorVisibility="None"
                ItemsSource="{Binding MyItems}"
                IsPullToRefreshEnabled="True"            
                IsGroupingEnabled="True"
                GroupDisplayBinding="{Binding .}"
                HasUnevenRows="True"
                Footer="{Binding .}" 
                CachingStrategy="RecycleElement">
    
            <ListView.FooterTemplate>         
              <DataTemplate>
                <footer:MyFooterCell/>
              </DataTemplate>
            </ListView.FooterTemplate>
    
            <ListView.ItemTemplate>
              <template:MyDataTemplateSelector/>
            </ListView.ItemTemplate>
    
            <ListView.GroupHeaderTemplate>
              <template:MyDataTemplateSelector/>
            </ListView.GroupHeaderTemplate>    
    
    <ListView>
    
    Friday, January 22, 2016 12:43 PM
  • User40173 posted

    Attached small sample project to reproduce issue.

    Friday, January 22, 2016 1:06 PM
  • User13348 posted

    Big huge thanks for the ControlTemplates addition, this is such a game changer in building re-usable custom controls framework. I can now re-implement every control I made so far but I am really excited about it !!!

    Thanks again !!!

    Friday, January 22, 2016 6:19 PM
  • User13348 posted

    @TheRealJasonSmith quick question: does the ControlTemplate mechanism adds performance degradation compared to building the same screen without ControlTemplate ?

    Friday, January 22, 2016 6:21 PM
  • User352 posted

    Nothing beyond what you expect in terms of "it has to inflate the template" and "whatever I put in the template is in the visual hierarchy"

    Friday, January 22, 2016 7:11 PM
  • User40173 posted

    I also experience a lot of "Java.Lang.ArrayIndexOutOfBoundsException" on Android while fastly scrolling a ListView up/down (Recycling).

    I sadly can't track it exactly down to make a sample reproducement.

    Java.Lang.ArrayIndexOutOfBoundsExceptionlength=20; index=21
    Raw
      at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () <0xd801b600 + 0x0002b> in <filename unknown>:0 
      at Android.Runtime.JNIEnv.CallVoidMethod (IntPtr jobject, IntPtr jmethod, Android.Runtime.JValue* parms) <0xdc054d08 + 0x00097> in <filename unknown>:0 
      at Android.Views.ViewGroup.Layout (Int32 l, Int32 t, Int32 r, Int32 b) <0xdb2fe0b8 + 0x00177> in <filename unknown>:0 
      at Xamarin.Forms.Platform.Android.ViewRenderer`2[TView,TNativeView].OnLayout (Boolean changed, Int32 l, Int32 t, Int32 r, Int32 b) <0xdb2fde60 + 0x000ee> in <filename unknown>:0 
      at Xamarin.Forms.Platform.Android.ListViewRenderer.OnLayout (Boolean changed, Int32 l, Int32 t, Int32 r, Int32 b) <0xdb2fddd8 + 0x00037> in <filename unknown>:0 
      at Xamarin.Forms.Platform.Android.FormsViewGroup.n_OnLayout_ZIIII (IntPtr jnienv, IntPtr native__this, Boolean p0, Int32 p1, Int32 p2, Int32 p3, Int32 p4) <0xdb2fdc50 + 0x00056> in <filename unknown>:0 
      at (wrapper dynamic-method) System.Object:9d0128f1-255e-408e-a785-b518876a088c (intptr,intptr,bool,int,int,int,int)
      --- End of managed exception stack trace ---
    java.lang.ArrayIndexOutOfBoundsException: length=20; index=21
        at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:6588)
        at android.widget.ListView.layoutChildren(ListView.java:1632)
        at android.widget.AbsListView.onLayout(AbsListView.java:2151)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:581)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.ListViewRenderer.n_onLayout(Native Method)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.ListViewRenderer.onLayout(ListViewRenderer.java:64)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:29)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer_1.n_onLayout(Native Method)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer_1.onLayout(VisualElementRenderer_1.java:48)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:29)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer_1.n_onLayout(Native Method)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer_1.onLayout(VisualElementRenderer_1.java:48)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:29)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer_1.n_onLayout(Native Method)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer_1.onLayout(VisualElementRenderer_1.java:48)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:29)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer_1.n_onLayout(Native Method)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer_1.onLayout(VisualElementRenderer_1.java:48)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:29)
        at md5270abb39e60627f0f200893b490a1ade.NavigationPageRenderer.n_onLayout(Native Method)
        at md5270abb39e60627f0f200893b490a1ade.NavigationPageRenderer.onLayout(NavigationPageRenderer.java:62)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:29)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.MasterDetailContainer.n_onLayout(Native Method)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.MasterDetailContainer.onLayout(MasterDetailContainer.java:53)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1043)
        at md5270abb39e60627f0f200893b490a1ade.MasterDetailPageRenderer.n_onLayout(Native Method)
        at md5270abb39e60627f0f200893b490a1ade.MasterDetailPageRenderer.onLayout(MasterDetailPageRenderer.java:67)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.PlatformRenderer.n_onLayout(Native Method)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.PlatformRenderer.onLayout(PlatformRenderer.java:62)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1076)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
        at android.view.View.layout(View.java:15671)
        at android.view.ViewGroup.layout(ViewGroup.java:5038)
        at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
        at android.view.Choreographer.doCallbacks(Choreographer.java:580)
        at android.view.Choreographer.doFrame(Choreographer.java:550)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5254)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
    
    Friday, January 22, 2016 7:22 PM
  • User139040 posted

    @TheRealJasonSmith Has Implicit styling on custom controls been fixed yet? So In App.xaml or root layout control of the app, can we do an implicit style on our own controls in a separate library? Currently we cannot do that but with the new control templates I think it would be very important.

    Friday, January 22, 2016 8:18 PM
  • User352 posted

    @BradChase.2654 you mean application to subclasses? Implicit styles are explicitly defined as not apply to a subclass, though there are thoughts going around about how me might improve your selector support for what an implicit style applies to. Its not so much broken as its specced to work in a way you dont want like. There are solid reasons for the default being to not go to subclasses which I wrote down in OneNote somewhere but I'll be fucked if I can find it now (I cant, its lost to the OneNote gods).

    Friday, January 22, 2016 8:51 PM
  • User139040 posted

    @TheRealJasonSmith hah yea thats exactly what I meant. When we use the TemplatedView will we be able to? So say we inherit from ContentView, implicit styling wont work, right I get that limitation right now, BUT. If we inherit from the TemplatedView, can we now? Or might we be able to in the future?

    EDIT: The functionality that I really need only applies to TemplatedView's not any "inherited" class really. If that makes sense.

    Friday, January 22, 2016 10:19 PM
  • User352 posted

    we are evaluating options for the future

    Friday, January 22, 2016 10:21 PM
  • User25537 posted

    On Windows UWP all my ListViews are empty :/

    This is my XAML: <ListView ItemsSource="{Binding Items}" ItemTapped="ListView_ItemTapped"> <ListView.ItemTemplate> <DataTemplate> <ViewCell> <Label Text="Test" /> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView>

    Saturday, January 23, 2016 3:17 PM
  • User161212 posted

    This is awesome!

    Only issue I have run into so far is Element.Effects.Clear() will not work. You have to explicitly remove that Effect using Element.Effects.Remove or RemoveAt. Also, looks like you can only have one effect instance attached to one view.

    Sunday, January 24, 2016 8:28 AM
  • User352 posted

    @DominikWeber we're seeing this too in some other test apps, trying to work out the conditions that trigger it

    Monday, January 25, 2016 6:24 PM
  • User28549 posted

    Quick question, if BindableProperty.Create<TDeclarer, TPropertyType> is deprecated, what is it being replaced with?

    Monday, January 25, 2016 9:32 PM
  • User352 posted

    @ChaseFlorell just use the non-generic version.

    Just a quick update on the non-showing up WP lists. Those will be fixed soon, we have discovered the root of the issue (an event wasn't properly tracked).

    Monday, January 25, 2016 10:56 PM
  • User28549 posted

    @TheRealJasonSmith is that simply for performance reasons?

    Tuesday, January 26, 2016 12:18 AM
  • User1884 posted

    anybody else getting consistent crashes when ListView.IsGroupingEnabled="true" bound to an observable collection?

    Have a bug filed here https://bugzilla.xamarin.com/show_bug.cgi?id=38067

    Tuesday, January 26, 2016 7:13 PM
  • User181025 posted

    @TheRealJasonSmith @BryanHunter.xam

    There are multiple reported bugs with regards to Android navigation bar. It's really difficult to theme it without running into styling bugs.

    Can these be given attention in the next release?

    https://bugzilla.xamarin.com/showbug.cgi?id=38019 https://bugzilla.xamarin.com/showbug.cgi?id=26247 https://bugzilla.xamarin.com/showbug.cgi?id=22237 https://bugzilla.xamarin.com/showbug.cgi?id=38019

    Tuesday, January 26, 2016 10:58 PM
  • User181025 posted

    I think AppCompat made a buggy navigation bar even worse. I see multiple bugs on it in addition to the styling issues. Would really like to see some exclusive Android love. :) considering WP got lots of attention in this release.

    Tuesday, January 26, 2016 11:06 PM
  • User76049 posted

    Found this one in AppCompat a while back. Can't really look it until it becomes more stable.

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

    Tuesday, January 26, 2016 11:12 PM
  • User107505 posted

    The Navigation with AppCompat is completely broken...Xamarin where are you? This bug is not a minor thing, we can't release app for Android if you don't fix it. Don't you think we deserve a reply?

    Wednesday, January 27, 2016 9:34 AM
  • User109137 posted

    I am still getting a nullref exception when opening some views on WP (sometimes the first time I open it, usually the second time I open it).

    It never happened before 2.0 and never happens on any other platform.

    No stacktrace from the Unhandled exception. I do not even know where to begin.

    If I debug step by step it does not crash. Something must be called before it is assigned somewhere, but I have absolutely no clue on how to deal with this…

    Guess I am back on 1.5… again.

    Wednesday, January 27, 2016 10:23 AM
  • User72317 posted

    I discoverd that when using a stacklayout inside a grid on Windows Phone the ColumnDefinition is ignored. I found the reason / workaround for it:

    using Orientation = StackOrientation.Horizontal triggers the behavior -> result is XF is ignoring the sizes of the grid

      CreateGrid();
      Label _Label1 = CreateListViewDeviceNameLabel();
      Label _Label2 = CreateListViewDeviceNameLabel();
    
     StackLayout _placeHolderStackLayout = new StackLayout
      {
       // using StackLayout.Orientation propertie on XF 2.1.0 pre2 result in ignoring size definitions of the grid 
        Orientation = StackOrientation.Horizontal,
        Children =
        {
          _Label2
        }
      };
    
      _gridMainLayout.Children.Add(_Label1, 1, 0);
      _gridMainLayout.Children.Add(_placeHolderStackLayout, 1, 1);
    
    
    private void CreateGrid()
    {
      _gridMainLayout = new Grid();
      _gridMainLayout.RowDefinitions.Add(new RowDefinition { Height= new GridLength(45,GridUnitType.Absolute) }); // 
      _gridMainLayout.RowDefinitions.Add(new RowDefinition { Height= new GridLength(45,GridUnitType.Absolute) }); // 
      _gridMainLayout.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(90, GridUnitType.Absolute) }); //
      _gridMainLayout.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(100, GridUnitType.Absolute) });
      _gridMainLayout.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(80, GridUnitType.Absolute) }); //         
    }
    
    public Label CreateListViewDeviceNameLabel()
    {
      Label deviceNameLabel = new Label
      {
        Text = "This Text should be cut off at the end of the 2 Column",
        TextColor = Color.White,
        LineBreakMode = LineBreakMode.NoWrap,
      };
      return deviceNameLabel;
    }
    

    `

    Wednesday, January 27, 2016 11:55 AM
  • User140202 posted

    @MarcoT We are aware of the issue and it is being worked on.

    Wednesday, January 27, 2016 2:47 PM
  • User28549 posted

    Did something happen to the myView.RotateTo(); api? When I run 2.0.1, it runs as expected, when I update to this pre release, it crashes stating that animations must be run on the UI thread.

    I've got the source at work, but just remembered about it now and thought I'd ask before spending time wiring up a repro.

    Thursday, January 28, 2016 4:01 AM
  • User352 posted

    @Paul_Roy turn on break on throw in your exception settings so you can capture the stack trace and we will track down the issue.

    Thursday, January 28, 2016 8:33 AM
  • User352 posted

    @ChaseFlorell nope, what platform? Trace would be nice too :)

    Thursday, January 28, 2016 8:33 AM
  • User352 posted

    @MarcoT it is fixed in the next pre-release

    Thursday, January 28, 2016 8:34 AM
  • User25537 posted

    @TheRealJasonSmith have you been able to fix the UWP empty lists bug? I'm really waiting for this so I can implement the new features (Effects, ControlTemplate)

    Thursday, January 28, 2016 8:56 AM
  • User352 posted

    We have identified the problem yes. In general right now so long as you set your ListView.ItemsSource before the renderer is created you wont have an issue, obviously this is a blocker for release.

    Thursday, January 28, 2016 9:11 AM
  • User25537 posted

    I need to change the items multiple times during the app lifecycle, so this is not a usable workaround for me. When can I expect a fix for this issue? (I can't imagine this bug being too hard to fix)

    Thursday, January 28, 2016 9:58 AM
  • User352 posted

    Its already fixed, we're putting together the next pre soon.

    Thursday, January 28, 2016 10:02 AM
  • User25537 posted

    great, thanks!

    Thursday, January 28, 2016 10:07 AM
  • User109137 posted

    @TheRealJasonSmith Unfortunately I get nothing more, except that it comes from Xamarin.Forms.Platform.WP8.dll

    Full informations: System.NullReferenceException occurred Message: Exception thrown: 'System.NullReferenceException' in Xamarin.Forms.Platform.WP8.DLL Message: Exception thrown: 'System.NullReferenceException' in System.Windows.ni.dll Additional information: Object reference not set to an instance of an object.

    If only I had a line on my code to help you…

    Thursday, January 28, 2016 10:18 AM
  • User109137 posted

    @TheRealJasonSmith But I have a dump if this helps.

    Thursday, January 28, 2016 10:37 AM
  • User76916 posted

    @TheRealJasonSmith - I couldn't see it in the list of bug fixes here but a regression in 2.0.1 where an IsPassword=True on an Entry and the Keyboard="Numeric" only shows the default keyboard on WinRT. Will repro and file that tomorrow morning.

    Also I have another PITA bug that I am still tracking down, same code works in iOS but not WinRT. Where I switch MainPage to another NavigationPage, pop, then push another page and it just turns to a black screen. No issue in iOS though.

    The interesting thing I found is for some reason it was adding it on the ModalStack as well as the NavigationStack (completely bizarre because I don't use the Modal Stack at all anywhere in my project) and I only push to the navigation stack. This issue seems to be with this release and previous ones, so it doesn't look like a regression.

    But its only occurring my larger project and having trouble replicating it with a smaller project. But just thought I would mention it in case it springs something to mind.

    Thursday, January 28, 2016 11:17 AM
  • User109137 posted

    @TheRealJasonSmith Sorry, third post…

    I was able to get a stacktrace with the .NET reflector (http://forums.xamarin.com/discussion/comment/177455#Comment_177455)

    Thursday, January 28, 2016 1:03 PM
  • User57869 posted

    The additional features sound great, thanks for that!

    But why did you deprecate BindableProperty.Create<TDeclarer, TPropertyType>? I found those quite convenient. Is there any downside I'm not aware of?

    Thursday, January 28, 2016 3:34 PM
  • User352 posted

    @MichaelRumpler they come with a large performance and app size penalty on iOS

    Thursday, January 28, 2016 6:55 PM
  • User55225 posted

    Hi @TheRealJasonSmith @MichaelRumpler

    Regarding Generic versions of Create () BindableProperty are no longer supported and deprecated;

    Is this referring to this?

    http://developer.xamarin.com/guides/xamarin-forms/custom-renderer/view/#CreatingtheCustom_Control AND https://developer.xamarin.com/api/type/Xamarin.Forms.BindableProperty/

    If so, this is essential to my custom controls.

    Thanks

    Friday, January 29, 2016 12:17 AM
  • User352 posted

    They are not going away anytime soon, we deprecated them because their use should be heavily discouraged. That said I would be curious to know in what fashion they are essential to you as they literally just call the other API anyway.

    Friday, January 29, 2016 12:41 AM
  • User55225 posted

    Thanks for the quick reply @TheRealJasonSmith

    The more I think about it, I'd be surprised to see it go away. Maybe we are talking about different things. :)

    I use Bindable Properties when creating reusable controls that need to have bindable hook points to the outside world, ie the consumer of the control. If there is a different preferred way to create a property on a class which is bindable, that would likely work as well.

    As an example, in my app I have created a reusable TypedPicker < T >

    public class TypedPicker<T> : cPicker
    {
        #region Bindable Property SelectedItem
    
        public T SelectedItem
        {
            get { return (T) GetValue(SelectedItemProperty); }
            set { SetValue(SelectedItemProperty, value); }
        }
    
        public static readonly BindableProperty SelectedItemProperty =
            BindableProperty.Create<TypedPicker<T>, T>(
                p => p.SelectedItem, default(T), propertyChanged: SelectedItemChanged);
    
       // Omitted SelectedItemChanged method to update internal values
    
        #endregion
    
        #region Bindable Property TypedItems
    
        public IList<T> TypedItems
        {
            get { return (IList<T>) GetValue(TypedItemsProperty); }
            set { SetValue(TypedItemsProperty, value); }
        }
    
        public static readonly BindableProperty TypedItemsProperty =
            BindableProperty.Create<TypedPicker<T>, IList<T>>(
                p => p.TypedItems, default(IList<T>), propertyChanged: TypedItemsChanged);                
    
       // Omitted TypedItemsChanged method to update internal values
    
        #endregion
    
        public IValueConverter ValueConverter { get; set; }
    
        // Omitted code, responsible for updating values and keeping everything in sync.
    

    }

    This control can then be consumed in the following manner

        <cc:TypedPicker
            x:TypeArguments="reportingEnum:DateRangeEnum"
            TypedItems="{Binding AvailableDateRanges}"
            SelectedItem="{Binding SelectedDateRange, Mode=TwoWay}"
            ValueConverter="{StaticResource DateRangeEnumToStringConverter}"
            />
    

    Please let me know if you'd like any more info.

    Thanks again! Ant

    Friday, January 29, 2016 1:18 AM
  • User352 posted

    BindableProperties are not going away, you should just be using the non-generic version of BindableProperty.Create

    Friday, January 29, 2016 1:36 AM
  • User55225 posted

    Ok now I understand.

    It looks like I just need to update the way I call Create(). I do lose the typed propertyChanged method, but if it's for the better then I'm ok with that.

    Does this mean that I stand to have a performance gain by refactoring them? :)

    Thanks

    PS: Very happy to hear BPs are not going away.

    Friday, January 29, 2016 1:53 AM
  • User352 posted

    Yes there will be a slight performance boost from it. Mostly in startup time.

    Friday, January 29, 2016 1:59 AM
  • User55225 posted

    Thanks @TheRealJasonSmith !

    I appreciate the clarification :)

    I have 84 Bindable Properties in my app, so I'll work on getting them refactored.

    Friday, January 29, 2016 2:26 AM
  • User57869 posted

    To change the BindableProperties you should just replace

    BindableProperty.Create<BindablePicker, IList>(p => p.ItemsSource, null,
        propertyChanged: OnItemsSourcePropertyChanged);
    

    with

    BindableProperty.Create(nameof(ItemsSource), typeof(IList), typeof(BindablePicker), null,
        propertyChanged: OnItemsSourcePropertyChanged);
    

    The nameof here is a C# 6 feature. It gives you compile time safety for the property name. You can use that in VS2015 and I think it should work in XS too, but I'm not sure. Unfortunately VS2013 does not understand it. In VS2013 you have to specify a magic string "ItemsSource" and hope that you never do a typo in that name or rename the property.

    Unfortunately the propertyChanged handler (and I assume all the others too) has to be changed to non-generic value types too. In this case

    private static void OnItemsSourcePropertyChanged(BindableObject bindable, IList oldValue, IList newValue)
    

    becomes

    private static void OnItemsSourcePropertyChanged(BindableObject bindable, object oldValue, object newValue)
    
    Friday, January 29, 2016 6:40 AM
  • User31385 posted

    That's not an improvement. I really look forward to seeing if there's a way to retain type safety without sacrificing performance or bloating the code as seems to happen with the generic version. Magic strings, object instead of the type? In 2016? Really?

    Friday, January 29, 2016 6:48 AM
  • User39941 posted

    @TheRealJasonSmith said: It means that if you do ListView.HasUnevenRows = true you can now call ForceUpdateSize on your cell which will force the cell to dynamically resize, even if it is currently visible. On some platforms this operation can be extremely expensive, so it is not dont automatically, but if you wanted to do so you could hook the MeasureInvalidated event on the Content of your ViewCell and call ForceUpdateSize in there. Again this can be extremely expensive.

    I'm trying exactly that with the new pre-3, but it doesn't seem to work on my end...

    SETUP: I have a "TextAreaCell" : ViewCell. It has a StackLayout that contains a Label, that has multi-line text. In the constructor, I hook the Label.MeasureInvalidated event to this.ForceUpdateSize(). I put the TextAreaCell in a Page that has TableView with UnevenRows = true.

    EFFECT: The TextAreaCell does not change size.

    What am I missing? Do you have a mini-example that shows this to work?

    Friday, January 29, 2016 8:21 AM
  • User67129 posted

    Does this bug fix:

    Fix issue where InputTransparent wasn't working correctly in iOS in some cases

    Relate to this bug (Changing input transparent does nothing on iOS)?

    Friday, January 29, 2016 8:56 AM
  • User352 posted

    @DavidDancy yeah we don't like it either, and if you want to use the expression API go ahead, we wont be removing it in the 2.0 series at all, but be aware that there is nothing we can do about the iOS bloat due to AOT requirement. Without a JIT expression is extremely bloated and slow.

    Friday, January 29, 2016 9:14 AM
  • User352 posted

    @JKay I imagine so without testing

    @GretWijnalda I will get an example made up

    Friday, January 29, 2016 9:16 AM
  • User57869 posted

    @GertWijnalda You said, that you do that in a TableView, but @TheRealJasonSmith said it would work in a ListView. Can this be the problem?

    Friday, January 29, 2016 10:31 AM
  • User55225 posted

    @MichaelRumpler Great write-up on modification ;)

    Friday, January 29, 2016 10:40 AM
  • User40173 posted

    @MichaelRumpler said: To change the BindableProperties you should just replace

    BindableProperty.Create(p => p.ItemsSource, null, propertyChanged: OnItemsSourcePropertyChanged);

    with

    BindableProperty.Create(nameof(ItemsSource), typeof(IList), typeof(BindablePicker), null, propertyChanged: OnItemsSourcePropertyChanged);

    The nameof here is a C# 6 feature. It gives you compile time safety for the property name. You can use that in VS2015 and I think it should work in XS too, but I'm not sure. Unfortunately VS2013 does not understand it. In VS2013 you have to specify a magic string "ItemsSource" and hope that you never do a typo in that name or rename the property.

    Unfortunately the propertyChanged handler (and I assume all the others too) has to be changed to non-generic value types too. In this case

    private static void OnItemsSourcePropertyChanged(BindableObject bindable, IList oldValue, IList newValue)

    becomes

    private static void OnItemsSourcePropertyChanged(BindableObject bindable, object oldValue, object newValue)

    My bindable properties are static, so I can't use the nameof(ItemsSource) instead of p=>p.ItemSource which worked before.

    Do they need to be static? What disadvantage do I have when not using static BindableProperty ?

    Friday, January 29, 2016 11:59 AM
  • User39941 posted

    @TheRealJasonSmith Cool, many thanks! Was@MichaelRumpler right in saying that it would only work in a ListView, not a TableView?

    Friday, January 29, 2016 12:33 PM
  • User57869 posted

    @BastiBrauning said: My bindable properties are static, so I can't use the nameof(ItemsSource) instead of p=>p.ItemSource which worked before.

    Do they need to be static? What disadvantage do I have when not using static BindableProperty ?

    Mine is also static, but it works (in VS2015).

    public static readonly BindableProperty ItemsSourceProperty =
        BindableProperty.Create(nameof(ItemsSource), typeof(IList), typeof(BindablePicker), null,
            propertyChanged: OnItemsSourcePropertyChanged);
    

    If your BindableProperty is not static, then you could not do something like

    if (e.PropertyName == BindablePicker.ItemsSourceProperty.PropertyName)
    

    in a propertyChanged handler. Of course you should avoid magic strings there too.

    Friday, January 29, 2016 12:53 PM
  • User28549 posted

    Fix crash when calling RemovePage on Android AppCompat

    Sweet

    Saturday, January 30, 2016 9:53 PM
  • User181025 posted

    Updating XS and VS to the latest stable version of Xamarin broke Forms for me when styling Android. See here and here I tried using older versions of XF with no luck. Please advise.

    Sunday, January 31, 2016 6:28 AM
  • User58997 posted

    @AdrianKnight Updating VS with the latest Xamain.VS broke absolutly everything for me, rolling back to Xamarin.VS 4.0.0.1717 fixed the issue

    Monday, February 1, 2016 5:49 PM
  • User181025 posted

    @AxelCharpentier How did you rollback to the previous?

    Monday, February 1, 2016 5:52 PM
  • User58997 posted

    On the mac do this : https://forums.xamarin.com/discussion/13755/complete-uninstall-on-mac-help

    go to https://store.xamarin.com/account/my/subscription/downloads click on View all versions and download binaries according to https://releases.xamarin.com/stable-release-ios-9-2-xcode-7-2-support/ (that was the release that worked fine for me) Then uninstall xamarin on VS and reinstall this versionh ttp://download.xamarin.com/XamarinforVisualStudio/Windows/Xamarin.VisualStudio_4.0.0.1717.msi

    Monday, February 1, 2016 6:23 PM
  • User181025 posted

    Thanks. How did you get the link for Xamarin.VisualStudio_4.0.0.1717.msi? I ask this because I might need to rollback again in the future when something like this happens again, so I need a way to see previous download URLs.

    Monday, February 1, 2016 6:43 PM
  • User58997 posted

    I asked hello@xamarin.com. Dont understand why they dont put this link in the dashboard download.

    Monday, February 1, 2016 6:55 PM
  • User65168 posted

    Any downloadable demo for TemplatedPages?

    Monday, February 1, 2016 7:45 PM
  • User181025 posted

    @AxelCharpentier Unfortunately, 4.0.0.1717 did not fix it for me.

    Tuesday, February 2, 2016 12:50 AM
  • User58997 posted

    @AdrianKnight Sorry to here that... you should try to downgrad to the latest version that was working for you... I known its a pain :(

    Tuesday, February 2, 2016 10:02 AM
  • User1004 posted

    @BastiBrauning it is mandatory for a BindableProperty to be static if you want to set it from Xaml

    Tuesday, February 2, 2016 10:28 AM
  • User134292 posted

    Any idea when this problem will be solved?

    http://forums.xamarin.com/discussion/comment/177664

    Tuesday, February 2, 2016 11:00 AM
  • User57869 posted

    I have a solution with 15 projects for all the different platforms. I upgraded all projects but those which target Windows 8.1. In these projects I get the following error in VS2015 Package Manager Console:

    PM> install-package Xamarin.Forms -version 2.1.0.6508-pre3 Attempting to gather dependencies information for package 'Xamarin.Forms.2.1.0.6508-pre3' with respect to project 'GestureSample.WinStore', targeting 'Windows,Version=v8.1' Attempting to resolve dependencies for package 'Xamarin.Forms.2.1.0.6508-pre3' with DependencyBehavior 'Lowest' Resolving actions to install package 'Xamarin.Forms.2.1.0.6508-pre3' Resolved actions to install package 'Xamarin.Forms.2.1.0.6508-pre3' Removed package 'Xamarin.Forms.2.0.0.6484' from 'packages.config' Successfully uninstalled 'Xamarin.Forms.2.0.0.6484' from GestureSample.WinStore Package 'Xamarin.Forms.2.1.0.6508-pre3' already exists in folder 'D:\GestureSampleVS\packages' Install failed. Rolling back... Package 'Xamarin.Forms.2.1.0.6508-pre3 : ' does not exist in project 'GestureSample.WinStore' Package 'Xamarin.Forms.2.0.0.6484' already exists in folder 'D:\GestureSampleVS\packages' Added package 'Xamarin.Forms.2.0.0.6484' to 'packages.config' Executing script file 'D:\GestureSample_VS\packages\Xamarin.Forms.2.0.0.6484\tools\init.ps1' install-package : Failed to add reference to 'Xamarin.Forms.Core.Design'. At line:1 char:1 + install-package Xamarin.Forms -version 2.1.0.6508-pre3 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

    Whats strange is this line:

    Package 'Xamarin.Forms.2.1.0.6508-pre3 : ' does not exist in project 'GestureSample.WinStore'

    It has a ' : ' at the end of the package name. If course that package cannot be found because it's the wrong name.

    I could install 2.1.0.6503-pre2 without a problem.

    Did anybody else experience this and/or found a workaround?

    Tuesday, February 2, 2016 12:26 PM
  • User53115 posted

    Been busy with other stuff for a few days, but I can confirm that pre3 fixed my crash with the DataTemplateSelector on a grouped ListView.

    Tuesday, February 2, 2016 3:39 PM
  • User169828 posted

    @JoeManke

    <ListView ItemTemplate=local:MyDataTemplateSelector />

    When I try this, my project doesn't even build. It says there are missing quotes. Isn't this a really bizarre format?

    Where is one supposed to actually create the DataTemplates? Is this example implying that your template should be built in code? I generally try to avoid code and use XAML whenever possible. If I define some DataTemplates in app.xaml, it doesn't seem my DataTemplateSelector class can see them. And really, I would much prefer not having to lump different templates for different views into app.xaml.

    <ListView ItemsSource="{Binding ReportFilters}"> <ListView.ItemTemplate> <selectors:ReportFilterDataTemplateSelector /> </ListView.ItemTemplate>
    </ListView>

    Edit: I followed this: https://forums.xamarin.com/discussion/comment/114331/#Comment_114331 to create my App.xaml.

    Tuesday, February 2, 2016 8:20 PM
  • User352 posted

    @LGMaestrelli I dont believe that to be an issue with Forms but I have passed it up to the iOS team.

    @MichaelRumpler we are starting to believe this might be a race condition in the way powershell scripts are executed from nuget packages, we're looking into workarounds. Oddly we didn't change anything in the packaging from pre2 to pre3, just bumped the #.

    @JulienRosen you do have to define your DTS in code, it is not something you can define from XAML (by default). It is however easy to make a xaml buildable DTS, however the nature of that will also limit its usage a bit compared to building it from scratch. Your DataTemplates need not be built in code, just the selector.

    Wednesday, February 3, 2016 4:29 AM
  • User28549 posted

    @TheRealJasonSmith

    They are not going away anytime soon, we deprecated them because their use should be heavily discouraged. That said I would be curious to know in what fashion they are essential to you as they literally just call the other API anyway.

    I presume this is simply because of the reflection required to get the name anyways, and the performance hit it incurs?

    one slick way to do it is with a R# template.

    Wednesday, February 3, 2016 4:37 AM
  • User169828 posted

    @TheRealJasonSmith I have defined a DataTemplateSelector in code. I am coming from a WPF background where you could define each template as a XAML DataTemplate as a resource of the page in which it would be shown. In the example, you have

    this.templateOne = new DataTemplate (typeof (ViewA));

    what and where is ViewA?

    Wednesday, February 3, 2016 5:03 AM
  • User25537 posted

    @JulienRosen implement it like so:

    class MenuItemTemplateSelector : DataTemplateSelector { public DataTemplate ItemTemplate { get; set; } public DataTemplate HeaderTemplate { get; set; } protected override DataTemplate OnSelectTemplate(object item, BindableObject container) { if (item is MainMenuHeaderItemViewModel) return HeaderTemplate; else return ItemTemplate; } }

    <ListView.ItemTemplate> <converters:MenuItemTemplateSelector> <converters:MenuItemTemplateSelector.ItemTemplate> <DataTemplate> <ViewCell> <Grid Padding="40,5,20,5"> <Label Text="{Binding Caption}" Style="{StaticResource LabelStyle}" FontSize="18" /> </Grid> </ViewCell> </DataTemplate> </converters:MenuItemTemplateSelector.ItemTemplate> <converters:MenuItemTemplateSelector.HeaderTemplate> <DataTemplate> <ViewCell> ... </ViewCell> </DataTemplate> </converters:MenuItemTemplateSelector.HeaderTemplate> </converters:MenuItemTemplateSelector> </ListView.ItemTemplate>

    Or use static resources:

    <Resources> <DataTemplate x:Key="ItemTemplate"> <ViewCell> ... </ViewCell> </DataTemplate> <DataTemplate x:Key="HeaderTemplate"> <ViewCell> ... </ViewCell> </DataTemplate> <converters:MenuItemTemplateSelector x:Key="TemplateSelector" ItemTemplate="{StaticResource ItemTemplate}" HeaderTemplate="{StaticResource HeaderTemplate}" /> </Resources>

    This is pretty much the same way you do it in WPF

    Wednesday, February 3, 2016 4:07 PM
  • User169828 posted

    @DominikWeber ahh thank you. that makes more sense. you are essentially doing the data template selector constructor in xaml, this is where I was getting thrown off. Thank you.

    Wednesday, February 3, 2016 5:22 PM
  • User352 posted

    @ChaseFlorell its because the iOS AOT compiler has no idea that we are just walking over the expression and not actually executing it. It inserts a massive (literally huge, you have no idea how much IL huge) interpreter for each expression in your codebase. So if you have a bunch of them for your BP's it bloats the everloving crap out of your dll.

    Wednesday, February 3, 2016 5:56 PM
  • User25537 posted

    @ChaseFlorell FWIW, you can use the c#6 nameof() operator to get the property name:

    public static readonly BindableProperty TestProperty = BindableProperty.Create(nameof(Test), typeof(string), typeof(DeclarerClass), null);

    Using the nameof operator you don't end up having two separate property names after refactoring.

    if (e.PropertyName == nameof(DeclarerClass.Test))

    @MichaelRumpler The latter code has two advantages: a) it is evaluated at compile time (like constants) b) it also works with interfaces, if you use DeclarerClass.TestProperty.PropertyName you have to have a hard reference to the implementation class

    @TheRealJasonSmith Did you already have time to take a look at the PM i sent you regarding the UWP fix?

    Wednesday, February 3, 2016 6:28 PM
  • User139040 posted

    Are effects broken completely right now? Or am I experiencing something weird? So I set an Effect on ONE Entry element I have and yet ALL Entry elements change color. So here is the effect:

    ``` public class EntryTintEffect : PlatformEffect {

        private void SetColor( )
        {
    
            Entry element = Element as Entry;
            if( element == null )
                return;
    
            this.Control.Background.SetTint(Color.Red.ToAndroid( ));// element.TextColor.ToAndroid( ));
    
            //this.Control.Background.SetTint(element.TextColor.ToAndroid( ));
    
        }
    
        protected override void OnAttached( )
        {
            SetColor( );
        }
    
        protected override void OnDetached( )
        {
    
        }
    
        protected override void OnElementPropertyChanged( System.ComponentModel.PropertyChangedEventArgs args )
        {
            base.OnElementPropertyChanged(args);
    
            if(args.PropertyName == "TextColor")
            {
                SetColor( );
            }
        }
    

    } ```

    Every Entry element in my entire application now has a red underline when I put the effect on only one control. Ideas?

    EDIT: Had to change code slightly to be seen here on the forums(ughhhhh fix this!)

    Edit (from TheRealJasonSmith): Fixed your formatting :)

    Wednesday, February 3, 2016 9:37 PM
  • User352 posted

    @BradChase.2654 without having run that effect yet, can you just put a breakpoint in and see how often SetColor is being called?

    Wednesday, February 3, 2016 10:28 PM
  • User139040 posted

    @TheRealJasonSmith I'll check in the AM. Thanks for the fix, it seems to not like compiler directives.

    Thursday, February 4, 2016 3:14 AM
  • User139040 posted

    @TheRealJasonSmith OK So ran a test and removed all the SetColor calls except for OnAttached. And it gets called once but is applied to all controls. Maybe I am not using Effects right? Are they a static/global effect or are they used per control?

    So to explain clearly, I set the effect on only one element, the OnAttached gets called once, and it is a global effect on all elements(I return if not of type Entry).

    EDIT: I should note that we are still on Xamarin 3 because WCF is broken in 4. I dont think the mono libraries should cause other issues with this specific one, but it might help if you guys cant repro it.

    Thursday, February 4, 2016 1:30 PM
  • User25537 posted

    @BradChase.2654 From reading your code I think you are actually modifying the tint color of the background drawable of your control (instead of modifying the control itself). This background drawable might be shared with other text fields. Try creating a new background drawable with tint color and assign that to your control.

    Thursday, February 4, 2016 4:26 PM
  • User139040 posted

    @DominikWeber ahh good eye. I will look into it and see what that option does. Can you help me understand what that background might do? Is it a static, virtualized, or redrawn maybe somehow? I agree that it seems that is the case, I just don't know enough on why it is heh :).

    Edit: to add it is the standard Entry control.

    Thursday, February 4, 2016 4:39 PM
  • User139040 posted

    @DominikWeber @TheRealJasonSmith Ok so I ran some more tests and I cant find any other way to set the tint color besides these two ways:

    editText.Background.SetColorFilter(Color.Green.ToAndroid( ), PorterDuff.Mode.SrcIn); & editText.Background.SetTint(Color.Red.ToAndroid( ));

    Both of those change the entire applications tint on EditText controls. Now here is the weird part:

    Taking out those lines and changing them to the TextColor:

    editText.SetTextColor(Color.Blue.ToAndroid( ));

    What do you think would happen? Well your wrong, that actually only applies to the control that the effect was put on. Why the difference?

    EDIT: Just to add I still need the tint color changed but i just wanted to show that the text color behaves differently.

    Thursday, February 4, 2016 10:31 PM
  • User311 posted

    I'm rewriting my bindings to non-generic version, but I seem to get an argument exception always when I try to set a default value:

    public static readonly BindableProperty FontSizeProperty = BindableProperty.Create(nameof(FontSize), typeof(DigitLabel), typeof(double), 23d, BindingMode.OneWay, null, OnFontSizePropertyChanged);

    System.ArgumentException: Default value did not match return type Any idea why?

    Friday, February 5, 2016 11:56 AM
  • User78996 posted

    @RogiervanderHee You've got your types swapped. Switch DigitLabel and double in your example.

    Friday, February 5, 2016 1:54 PM
  • User311 posted

    @JMarcus: ah, got it. Thanks!

    Friday, February 5, 2016 1:59 PM
  • User66766 posted

    @JMarcus here is a code snippet I use in Xam Studio to create these quickly

    <?xml version="1.0" encoding="utf-8"?>
    <CodeTemplates version="3.0">
      <CodeTemplate version="2.0">
        <Header>
          <_Group>C#</_Group>
          <Version />
          <MimeType>text/x-csharp</MimeType>
          <Shortcut>bprop</Shortcut>
          <_Description />
          <TemplateType>Expansion</TemplateType>
        </Header>
        <Variables>
          <Variable name="name">
            <Default>notset</Default>
          </Variable>
          <Variable name="view">
            <Default>notset</Default>
          </Variable>
          <Variable name="type">
            <Default>string</Default>
          </Variable>
          <Variable name="classname" isEditable="false">
            <Default>notset</Default>
            <Function>GetCurrentClassName()</Function>
          </Variable>
        </Variables>
        <Code><![CDATA[
    
            public static readonly BindableProperty $name$Property =
                BindableProperty.Create (nameof($name$), typeof($type$), typeof($classname$), null, BindingMode.OneWay);
    
            public $type$ $name$
            {
                get { return ($type$)GetValue ($name$Property); }
                set { SetValue ($name$Property, value); }
            }]]></Code>
      </CodeTemplate>
    </CodeTemplates>
    
    Friday, February 5, 2016 5:25 PM
  • User77348 posted

    I think I found a regression on UWP.. can't change detail in a master-detail system... Bugzilla : https://bugzilla.xamarin.com/show_bug.cgi?id=38505

    Friday, February 5, 2016 6:54 PM
  • User92610 posted

    Wait, so the Generic version of BindableProperty.Create is deprecated? Like this?

        public static readonly BindableProperty StrokeWidthProperty = 
            BindableProperty.Create<BaseEntry, int> (prop => prop.StrokeWidth, 1);
    
    Friday, February 5, 2016 7:16 PM
  • User57869 posted

    @BradChase.2654 You have to mutate the Drawable otherwise the color is changed for all Drawables with this resource id (=all instances of the same images). See this SO answer.

    // If we don't mutate the drawable, then all drawable's with this id will have a color
    // filter applied to it.
    drawable.mutate();
    drawable.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
    
    Saturday, February 6, 2016 2:27 PM
  • User107505 posted

    Every time I try to export an apk I receive this error:

    The "XamlCTask" task could not be instantiated from "...\packages\Xamarin.Forms.2.1.0.6508-pre3\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Build.Tasks.dll". Object reference not set to an instance of an object. The "XamlCTask" task has been declared or used incorrectly, or failed during construction. Check the spelling of the task name and the assembly name.

    Inside my project I don't use xaml, only code. Usually to "solve" this problem, I clean the project and restart my machine.

    How can I solve this error?

    Saturday, February 6, 2016 4:53 PM
  • User139040 posted

    @MichaelRumpler said: @BradChase.2654 You have to mutate the Drawable otherwise the color is changed for all Drawables with this resource id (=all instances of the same images). See this SO answer.

    // If we don't mutate the drawable, then all drawable's with this id will have a color
    // filter applied to it.
    drawable.mutate();
    drawable.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
    

    You are the man! I will test this out on Monday. How come I have never heard of this before?! Crazy. I'm glad the error is on my end.

    Brad

    Saturday, February 6, 2016 4:58 PM
  • User55225 posted

    @ShanePope correct. Looks like on iOS AOT it creates assembly bloat.

    Sunday, February 7, 2016 4:18 PM
  • User6040 posted

    @CraigDunn how to apply effect to StackLayout? like, borders for example.

    Sunday, February 7, 2016 4:42 PM
  • User67129 posted

    Is what @ShanePope saying correct, that BindableProperty.Create<BaseEntry, int> (prop => prop.StrokeWidth, 1) has been deprecated?

    I have used this technique in ALL of my custom controls and can see 0 mention of this anywhere, apart from 1 small comment in the depths of this thread (which will obviously disappear into the abyss after the next release).

    Please document this with the correct way to rectify it.

    Documentation is AS, if not MORE important than the code itself when writing API's!

    Monday, February 8, 2016 8:42 AM
  • User57869 posted

    @JKay @ShanePope This is mentioned in the very first post of this thread under "Other Improvements". There has already been an extensive discussion here.

    Monday, February 8, 2016 9:48 AM
  • User139040 posted

    @MichaelRumpler Ok so I have the same issue with the code change. Here is the code:

    EditText test = this.Control as EditText; Drawable drawable = test.Background.Mutate( ); drawable.SetColorFilter(Color.Green.ToAndroid( ), PorterDuff.Mode.SrcAtop);

    It still changes them the color for all controls. Ideas?

    Monday, February 8, 2016 2:27 PM
  • User57869 posted

    I'm not very comfortable with this either. I just saw that SO article the other day. If I understood it correctly, then you have to do

    var drawable = test.Background;
    drawable.Mutate();
    drawable.SetColorFilter(Color.Green.ToAndroid( ), PorterDuff.Mode.SrcAtop);
    test.Background = drawable;
    

    You may be able to find the answer on the Android Developers Blog.

    Monday, February 8, 2016 3:29 PM
  • User139040 posted

    @MichaelRumpler That makes sense because it is mutating, but the interesting part is I was doing that the first time on the mutate and then took it off because the color was still changing. So you can literally just mutate and then change the value on the return from the mutate and all the drawables will change! Thats without even setting the drawable back to the background. Seems like Mutate is not actually mutating at all! Is this a Xamarin issue or an Android issue you think?

    EDIT: I wonder if the line is a bitmap?

    Monday, February 8, 2016 3:50 PM
  • User57869 posted

    @BradChase.2654 Mutate() is a pure Android thing. It is explained at the link I posted last time. It does not clone the object, it only changes some internal state of it. So the assignment back may not be needed, but it may trigger a PropertyChanged event (depends on the implementation). As I already said, these are just guesses. I didn't try it myself. I plan to implement tinting next, but didn't do it yet.

    Monday, February 8, 2016 9:53 PM
  • User107505 posted

    On windows phone, If you put a button inside a layout (Relative or absolute) that is inside a scrollview, then you can't set a dimension on this button.

    The same code works perfectly on iOS and Android.

    Tuesday, February 9, 2016 11:05 AM
  • User2593 posted

    It seems tradition to raise bugs against pre-releases in the pre-release forum thread, and since it is currently not possible to do so in bugzilla, I will do so as well. Please advice if we should follow a different procedure.

    Anyway..

    When adding lots of pins to a map on Android, moving to center on latest pin, and navigating to and from the page containing the Map view, I eventually experience the following crash with 2.1.0-pre4. I'm not sure it is a regression since pre3, but this is now the crash I see most frequently (it is fairly rare).

    I have a hunch it is caused by MapRenderer.n_onCameraChange(Native Method)

    Here is it the interesting bits from adb logcat:

    02-10 10:40:52.310  2481  2481 D AndroidRuntime: Shutting down VM
    02-10 10:40:52.336  2481  2481 I mono-stdout: RootDomain
    02-10 10:40:52.337  2481  2481 I mono-stdout: System.UnhandledExceptionEventArgs
    02-10 10:40:52.377  2481  2481 E AndroidRuntime: FATAL EXCEPTION: main
    02-10 10:40:52.377  2481  2481 E AndroidRuntime: Process: XamarinPoC.Android, PID: 2481
    02-10 10:40:52.377  2481  2481 E AndroidRuntime: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime: Caused by: java.lang.reflect.InvocationTargetException
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    ... 1 more
    02-10 10:40:52.377  2481  2481 E AndroidRuntime: Caused by: md52ce486a14f4bcd95899665e9d932190b.JavaProxyThrowable: System.NotSupportedException: Unable to activate instance of type Xamarin.Forms.Maps.Android.MapRenderer from native handle 0xffedf85c (key_handle 0x1c9d9fe). ---> System.MissingMethodException: No constructor found for Xamarin.Forms.Maps.Android.MapRenderer::.ctor(System.IntPtr, Android.Runtime.JniHandleOwnership) ---> Java.Interop.JavaLocationException: Exception of type 'Java.Interop.JavaLocationException' was thrown.
    02-10 10:40:52.377  2481  2481 E AndroidRuntime: Java.Lang.Error: Exception of type 'Java.Lang.Error' was thrown.
    02-10 10:40:52.377  2481  2481 E AndroidRuntime: 
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:   --- End of managed exception stack trace ---
    02-10 10:40:52.377  2481  2481 E AndroidRuntime: java.lang.Error: Java callstack:
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at md5d956392b2b421ac2c9ccfc063253dcd9.MapRenderer.n_onCameraChange(Native Method)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at md5d956392b2b421ac2c9ccfc063253dcd9.MapRenderer.onCameraChange(MapRenderer.java:54)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.google.android.gms.maps.GoogleMap$7.onCameraChange(Unknown Source)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.google.android.gms.maps.internal.zze$zza.onTransact(Unknown Source)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at android.os.Binder.transact(Binder.java:387)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.google.android.gms.maps.internal.aa.a(SourceFile:93)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.google.maps.api.android.lib6.gmm6.c.a.a(Unknown Source)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.google.maps.api.android.lib6.gmm6.c.b.run(Unknown Source)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:739)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:95)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:148)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:5417)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime: 
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:   --- End of inner exception stack trace ---
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:   at Java.Interop.TypeManager.CreateProxy (System.Type type, IntPtr handle, JniHandleOwnership transfer) <0xd7174eb8 + 0x00208> in <filename unknown>:0 
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:   at Java.Interop.TypeManager.CreateInstance (IntPtr handle, JniHandleOwnership transfer, System.Type targetType) <0xf3de5280 + 0x0023f> in <filename unknown>:0 
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:   --- End of inner exception stack trace ---
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:   at Java.Interop.TypeManager.CreateInstance (IntPtr handle, JniHandleOwnership transfer, System.Type targetType) <0xf3de5280 + 0x00548> in <filename unknown>:0 
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:   at Java.Lang.Object.GetObject (IntPtr handle, JniHandleOwnership transfer, System.Type type) <0xf3de4720 + 0x00307> in <filename unknown>:0 
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:   at Java.Lang.Object._GetObject[T] (IntPtr handle, JniHandleOwnership transfer) <0xf3de4590 + 0x0004f> in <filename unknown>:0 
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:   at Java.Lang.Object.GetObject[T] (IntPtr handle, JniHandleOwnership transfer) <0xf3de4398 + 0x0002b> in <filename unknown>:0 
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:   at Java.Lang.Object.GetObject[T] (IntPtr jnienv, IntPtr handle, JniHandleOwnership transfer) <0xd6d122d8 + 0x00037> in <filename unknown>:0 
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:   at Android.Gms.Maps.GoogleMap+IOnCameraChangeListenerInvoker.n_OnCameraChange_Lcom_google_android_gms_maps_model_CameraPosition_ (IntPtr jnienv, IntPtr native__this, IntPtr native_position) <0xcc989d48 + 0x00033> in <filename unknown>:0 
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:   at (wrapper dynamic-method) System.Object:a44543ce-9f04-465e-9d31-5bd8db183023 (intptr,intptr,intptr)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at md5d956392b2b421ac2c9ccfc063253dcd9.MapRenderer.n_onCameraChange(Native Method)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at md5d956392b2b421ac2c9ccfc063253dcd9.MapRenderer.onCameraChange(MapRenderer.java:54)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.google.android.gms.maps.GoogleMap$7.onCameraChange(Unknown Source)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.google.android.gms.maps.internal.zze$zza.onTransact(Unknown Source)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at android.os.Binder.transact(Binder.java:387)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.google.android.gms.maps.internal.aa.a(SourceFile:93)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.google.maps.api.android.lib6.gmm6.c.a.a(Unknown Source)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at com.google.maps.api.android.lib6.gmm6.c.b.run(Unknown Source)
    02-10 10:40:52.377  2481  2481 E AndroidRuntime:    at android.os.Handler.h
    02-10 10:40:52.463   896  3820 W ActivityManager:   Force finishing activity XamarinPoC.Android/md5f488a44b4a752da26bb3ba74d5a07b06.MainActivity
    
    Wednesday, February 10, 2016 9:56 AM
  • User32853 posted

    @BryanHunter.xam I have a MasterDetailPage on UWP, the Master is a ContentPage, Detail is a NavigationPage. The problem is, as you can see on the screenshots, when I set the BarBackgroundColor the menu button stays black and there is a black stripe on the menu page when I set the BackgroundColor.

    Is this a bug or am I missing something?

    And the tap events in the menu page don't work as expected. I have to tap slightly above the text labels (~30px), otherwise, the tap events are not fired.

    Wednesday, February 10, 2016 3:28 PM
  • User32853 posted

    Well, and the color of the "Secondary Commands" is also wrong.

    Wednesday, February 10, 2016 5:34 PM
  • User92610 posted

    i'm trying to use the nameof() operator in xamarin studio in my pcl forms project. but it's not resolving. Do I need to do something special?

    Thursday, February 11, 2016 5:49 PM
  • User53115 posted

    @ShanePope Are you getting error CS0103: The name 'nameof' does not exist in the current context? I get that in design mode for every instance of nameof or something that comes from a using static, but it actually builds fine.

    Thursday, February 11, 2016 8:37 PM
  • User2496 posted

    @MarkoLudolph thanks, that will be fixed in the stable release

    Friday, February 12, 2016 12:26 PM
  • User40173 posted

    Any chance this would make it in 2.1.0? https://bugzilla.xamarin.com/show_bug.cgi?id=37757 This completly disturbs the user experience in our app on iOS.

    Friday, February 12, 2016 9:04 PM
  • User57869 posted

    Although the Effects collection is available for Cells too, it doesn't seem to be applied. My OnAttached method is never called. I created bug #38739 for that.

    Saturday, February 13, 2016 1:12 PM
  • User67129 posted

    Can we fix this bug: "Hiding Bindable Properties throws "Sequence contains more than one matching element"

    Before releasing this to stable. As this release will break anyones project who has already implemented their own DataTemplateSelector shown here: blog.novotny.org/2014/12/31/datatemplateselector-for-xamarin-forms/

    Monday, February 15, 2016 8:43 AM
  • User32853 posted

    Thanks a lot @rmarinho. I have another question: How does the ListView Virtualization for Windows/UWP work? I have a project that works flawlessly on Android (a custom cell with uneven height), but it doesn't work on UWP as expected as it does not reuse the Cells.

    And one more thing: I have a NavigationPage and the root Page has a ListView with a lot of items (see the screenshots above). Now, if I push a new Page onto the Normal/Modal Navigation Stack, all the Controls on the Root Page "somehow" get detached (I don't know how it internally works). And therefore, when I try to navigate back (guess the Controls get "attached" back to the Page), it takes ages, before the Root page shows up again (severals seconds on a Lumia 550 here in Release mode). Is there a way to fix this problem? Otherwise, the UWP version looks really good.

    Tuesday, February 16, 2016 6:20 PM
  • User79735 posted

    When can we expect that using XAML in a Shared Project will build for UWP? It's been reported 2 months ago with a repro sample here.

    Tuesday, February 16, 2016 6:23 PM
  • User76916 posted

    Not sure if others are experiencing this but installing -pre4 it always adds references to things like

    Xamarin.Forms.Core.Design Xamarin.Forms.Xaml.Design

    Which causes the Could not load file or assembly Microsoft.Windows.Design.Extensibility in both Windows and iOS projects.

    This has happened on 3 separate projects I upgraded to -pre4

    The simple fix is just deleting these references so its not a big deal but its going to trip up a lot of people if I am not the only one who is experiencing this.

    Wednesday, February 17, 2016 12:22 AM
  • User57869 posted

    You're not the only one, @AdamP

    Wednesday, February 17, 2016 3:13 PM
  • User40173 posted

    On Android I have a MasterDetailPage (as MainPage) and hitting the backbutton on the rootpage terminates the app with an crash since using the 2.1.0 pre Version. Didn't occur on 2.0.1

    Java.Lang.IllegalStateExceptionActivity has been destroyed
    Raw
      at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () <0xd6325138 + 0x0002b> in <filename unknown>:0 
      at Android.Runtime.JNIEnv.CallIntMethod (IntPtr jobject, IntPtr jmethod) <0xd99ee500 + 0x00093> in <filename unknown>:0 
      at Android.Support.V4.App.FragmentTransactionInvoker.CommitAllowingStateLoss () <0xd6324790 + 0x0005f> in <filename unknown>:0 
      at Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer.Dispose (Boolean disposing) <0xd6323f90 + 0x00113> in <filename unknown>:0 
      at Java.Lang.Object.Dispose () <0xd930f5d8 + 0x00019> in <filename unknown>:0 
      at Xamarin.Forms.Platform.Android.MasterDetailContainer.DisposeChildRenderers () <0xd6323f20 + 0x0002a> in <filename unknown>:0 
      at Xamarin.Forms.Platform.Android.MasterDetailContainer.Dispose (Boolean disposing) <0xd6323ef0 + 0x00027> in <filename unknown>:0 
      at Java.Lang.Object.Dispose () <0xd930f5d8 + 0x00019> in <filename unknown>:0 
      at Xamarin.Forms.Platform.Android.AppCompat.MasterDetailPageRenderer.Dispose (Boolean disposing) <0xd6323a80 + 0x0005b> in <filename unknown>:0 
      at Java.Lang.Object.Dispose () <0xd930f5d8 + 0x00019> in <filename unknown>:0 
      at Xamarin.Forms.Platform.Android.AppCompat.Platform.SetPage (Xamarin.Forms.Page newRoot) <0xd89d72b8 + 0x000bc> in <filename unknown>:0 
      at Xamarin.Forms.Platform.Android.AppCompat.Platform.Dispose () <0xd6322f48 + 0x0002b> in <filename unknown>:0 
      at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.OnDestroy () <0xd633fc00 + 0x00067> in <filename unknown>:0 
      at Android.App.Activity.n_OnDestroy (IntPtr jnienv, IntPtr native__this) <0xd633fbc8 + 0x00032> in <filename unknown>:0 
      at (wrapper dynamic-method) System.Object:fc1c9e40-7a03-4be5-9c81-ef84609cfa78 (intptr,intptr)
      --- End of managed exception stack trace ---
    java.lang.IllegalStateException: Activity has been destroyed
        at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1470)
        at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:634)
        at android.support.v4.app.BackStackRecord.commitAllowingStateLoss(BackStackRecord.java:617)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.FormsAppCompatActivity.n_onDestroy(Native Method)
        at md5b60ffeb829f638581ab2bb9b1a7f4f3f.FormsAppCompatActivity.onDestroy(FormsAppCompatActivity.java:70)
        at android.app.Activity.performDestroy(Activity.java:6407)
        at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1142)
        at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3818)
        at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3849)
        at android.app.ActivityThread.-wrap5(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1398)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5417)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
    
    Wednesday, February 17, 2016 9:56 PM
  • User173875 posted

    @BastiBrauning Thanks for posting this. We are looking into it now.

    Friday, February 19, 2016 12:13 AM
  • User352 posted

    This has been resolved in the 2.1.0 branch and will be in the final version

    Friday, February 19, 2016 7:39 AM
  • User40173 posted

    Great, looking forward to 2.1.0!

    Since 2.1.0-pre version I also experience a strange crash on android when navigating to a page with a ListView where I have a HeaderTemplate which uses custom renderer. I'm unable to find the cause, anyone has an idea what can cause this exception?

    java.lang.reflectUnable to create layer for MyCustomLabelRenderer Raw

      --- End of managed exception stack trace ---
    java.lang.IllegalStateException: Unable to create layer for MyCustomLabelRenderer
        at android.os.MessageQueue.nativePollOnce(Native Method)
        at android.os.MessageQueue.next(MessageQueue.java:323)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5417)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
    

    Side note: I noticed this crash happens when using xaml, when I rewrite my view to C# code it stops happening.

    Friday, February 19, 2016 1:52 PM
  • User32853 posted

    I would like to talk about Navigation on UWP. After looking at the code with ILSpy, the native root Control seems to be a Canvas. So, when you set the main Page in XF, the UWP Renderer creates the native container with the Controls from the page and adds the container to the Canvas. Now, when I e.g. push a modal page, the previous container added to the Canvas is removed and the new container is added to the Canvas.

    When you now pop the modal page, the current page is removed and the previous page is added to the Canvas again. And this is imho a problem: It's a huge perfomance hit. There seem to be a lot of calculations in the background to get the page back into the visibility tree. Well, you maybe don't notice it, when you have a fancy and simple demo pages with a button or two and run it in the simulator. But the performace hit is there.

    As I posted before, I have a huge ListView on the root page. If I push a modal page on it and navigate back, it takes up to five seconds on my Lumia 550, after I pressed the back button, before the page with the ListView is visible again. During that time, the page hangs. It seems, that it needs to scroll to the previous position again and therefore has to re-create all the Cells from the top again.

    So, my question is: Why do you remove the current container for a page from the Canvas, instead of, e.g. simply hiding it? In this case, when I navigate back, the current page would be removed and the previous page made only visible again.

    The same problem arises with the NavigatoinPageRenderer, where the root is a ContentControl. This should also be a Canvas, which should show/hide the native containers.

    Saturday, February 20, 2016 8:22 PM
  • User32853 posted

    The color of the secondary menu is still wrong in pre5 in UWP (when you press the three little dots). The MasterDetailPage Colors are working now, thanks.

    Saturday, February 20, 2016 9:44 PM
  • User90905 posted

    Wondering if this will make it in the next release. https://bugzilla.xamarin.com/show_bug.cgi?id=38456

    Sunday, February 21, 2016 7:04 PM
  • User12542 posted

    [WinRT] Reduce instances of LayoutCycle detected, this issue is now worst than ever in my App, now it happens when I resize the windows, and in some pages, the reize of the windows does not update the size of the controls.

    I am using Xamarin.Forms Pre-5

    Monday, February 22, 2016 2:37 PM
  • User25537 posted

    Can we please also get this bug fixed? https://bugzilla.xamarin.com/show_bug.cgi?id=37625

    Monday, February 22, 2016 2:59 PM
  • User169828 posted

    could i bring some attention to this one https://bugzilla.xamarin.com/show_bug.cgi?id=25662

    and also to switchcells in general. they don't seem to behave very well when in any sort of container, there are a few bug reports of similar behavior.

    Monday, February 22, 2016 3:20 PM
  • User140202 posted

    @AlbertoPuyana Do you have any kind of reproduction you can provide given your particular usage?

    Monday, February 22, 2016 5:05 PM
  • User76916 posted

    @AlbertoPuyana @PaulDiPietro - When the new layout engine came for Windows my large app started throwing Layout Cycle errors quite frequently on a lot of pages. (and by large app, I spent 10 months + developing that).

    I would really like to get repro's for you but generating a repro for a complex layout that finally triggers it takes considerable amount of time and unfortunately project deadlines keep me from spending the now days of repro work I have to do for my numerous bugs (as you remember you requested a repro on another bug I filed). I was hoping someone else would eventually repro and fix them (wishful thinking) :)

    As such my Windows Phone project is blocked at 1.5.1 for the moment and I am just keeping it there. Just letting you know I also experience them.

    On to my next issue. -pre5 is mostly made up of bug fixes I requested for navigation. However it still has an issue and introduces a regression as well. Please see my Second Repro here; https://bugzilla.xamarin.com/show_bug.cgi?id=38159

    Because -pre5 creates a regression and doesn't actually fix my navigation bugs completely I really would recommend either pulling -pre5 or checking out my second repro and fixing that. :) If 2.1.0 goes live I will be blocked at 2.0.1 because the regression removes the ability of my temporary work around.

    Monday, February 22, 2016 11:09 PM
  • User2086 posted

    Just dropping a note that under UWP on Win10, in my app, pre5 shows a black window, whereas pre4 works fine.

    Using the Live Inspector in VS shows that the ActualWidth and ActualHeight of the Panel inside the ContentPresenter of Grid in the PageControl is always 0.

    All the controls are there, it's just that this Panel has zero width/height, meaning nothing is shown in the window. Resizing the window at runtime makes no difference.

    Possible cause: changing MainPage of the app more than once, but unconfirmed.

    Tuesday, February 23, 2016 10:05 AM
  • User76916 posted

    @cleardemon - if you see my post directly above I think you might be experiencing the same issue I am. In the attempt to fix another bug (https://bugzilla.xamarin.com/show_bug.cgi?id=38159) they introduced this one and I also mentioned its going to cause some serious issues if they don't fix it before pre5 goes stable because the bug that was introduced is a far more common navigation scenario, so I imagine quite a few will run into it.

    Wednesday, February 24, 2016 6:44 AM
  • User123140 posted

    Master detail pages for Windows 8.1 do not have a navigation bar in any of the latest pre-releases. Is this a known issue? The first attached picture is the latest stable build (2.0.1.6505) and the second is with the latest pre-release.

    Wednesday, February 24, 2016 3:50 PM
  • User352 posted

    @AdamP we're digging into it, the system is unfortunately a lot more complicated than you might expect.

    @cleardemon can you give me a repro, that would be a blocking issue, would you be willing to test a test package for me? email me jason@xamarin.com if you are willing to help.

    Thursday, February 25, 2016 3:49 AM
  • User76916 posted

    No worries @JasonSmith.1987 - I do know to some degree how complicated it is. I spend at least a little time each week in decompiled Xamarin Forms code :)

    I just wanted to bring it to your attention because the regression is significant enough to break quite a few existing apps.

    Thursday, February 25, 2016 4:25 AM
  • User352 posted

    I have a fix I think (pretty sure), hit me up on twitter if you want to test

    Thursday, February 25, 2016 5:22 AM
  • User52818 posted

    Any chance of fixing this bug and making it work as it used to? Very annoying for my users. https://bugzilla.xamarin.com/show_bug.cgi?id=37113. Must have snuck in sometime.

    Thursday, February 25, 2016 6:56 AM
  • User174822 posted

    @TheRealJasonSmith Hi Jason. I'm attempting to use the new ForceUpdateSize() via a button inside a custom ViewCell but it's not having any effect. Is it designed to work like that?

    toggleButton.Clicked += async (sender, e) => {
        visibleButtons = !visibleButtons;
        if (visibleButtons)
        {
            this.Height = 120;
            this.ForceUpdateSize ();
        } 
        else
        {
            this.Height = 60;
            this.ForceUpdateSize ();
        }
    };
    
    Thursday, February 25, 2016 2:31 PM
  • User352 posted

    @RogerSchmidlin looking into it now

    @GraemeSutters thank you

    Friday, February 26, 2016 3:44 AM
  • User352 posted

    @RogerSchmidlin huh somehow that fix never got into master. Not exactly sure how but that seems to be the case.

    Friday, February 26, 2016 4:15 AM
  • User74 posted

    @TheRealJasonSmith Hi Jason, I can also confirm that viewcell.ForceUpdateSize() does nothing for me in iOS, having just upgraded to pre5 to try it out. Im on stable iOS if that makes a difference, and Im also displaying the cell within a table view with uneven rows on.

    Friday, February 26, 2016 10:34 AM
  • User174822 posted

    @TheRealJasonSmith I should probably have mentioned that I was trying it out on Android.

    Friday, February 26, 2016 11:52 AM
  • User52818 posted

    Using the BoxView with gestures does only fire on iOS if Opacity > 0. Opacity 0 fires fine on Android. I put a BoxView over an Image view to define the valid gesture area.

    Sunday, February 28, 2016 1:51 PM
  • User2496 posted

    @ThomasGregerson Do you have a NavigationPage as the detail?

    Monday, February 29, 2016 7:43 PM
  • User123140 posted

    @rmarinho The master and the detail are just content pages. The MasterDetail is the NavigationPage: Navigation.PushAsync(new masterDetailPage()). That seems to work perfectly fine on Android, iOS, and Windows before the 2.1 pre-releases.

    Tuesday, March 1, 2016 10:20 PM
  • User118330 posted

    @RuiMarinho.6924 you mentioned in bug 37873 https://bugzilla.xamarin.com/show_bug.cgi?id=37873 that it is fixed in Xamarin Forms 2.1.0 but I cant see that bug in the list. Are we definitely on for this being fixed?

    Wednesday, March 2, 2016 3:29 PM
  • User170304 posted

    I'm getting the following error on Android when switching tabs which all have NavigationPages on 2.1.0. I didn't have this problem on 2.0.1. I'm going back to 2.0.1. Does anyone have the same problem and/or a fix? Java.Lang.IllegalStateException: Recursive entry to executePendingTransactions at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/2692/e98e9627/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 at Android.Runtime.JNIEnv.CallBooleanMethod (IntPtr jobject, IntPtr jmethod) [0x00063] in /Users/builder/data/lanes/2692/e98e9627/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:218 at Android.Support.V4.App.FragmentManagerInvoker.ExecutePendingTransactions () [0x00033] in <filename unknown>:0 at Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer.Dispose (Boolean disposing) [0x0007a] in <filename unknown>:0 at Java.Lang.Object.Dispose () [0x00000] in /Users/builder/data/lanes/2692/e98e9627/source/monodroid/src/Mono.Android/src/Java.Lang/Object.cs:115 at Xamarin.Forms.Platform.Android.AppCompat.FragmentContainer.OnDestroyView () [0x00066] in <filename unknown>:0 at Android.Support.V4.App.Fragment.n_OnDestroyView (IntPtr jnienv, IntPtr native__this) [0x00009] in <filename unknown>:0 at (wrapper dynamic-method) System.Object:84a3f5f9-afb7-4b71-baad-d0e5e59e2ab0 (intptr,intptr) --- End of managed exception stack trace --- java.lang.IllegalStateException: Recursive entry to executePendingTransactions at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1544) at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:545) at md5270abb39e60627f0f200893b490a1ade.FragmentContainer.n_onDestroyView(Native Method) at md5270abb39e60627f0f200893b490a1ade.FragmentContainer.onDestroyView(FragmentContainer.java:57) at android.support.v4.app.Fragment.performDestroyView(Fragment.java:2167) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1100) at android.support.v4.app.FragmentManagerImpl.detachFragment(FragmentManager.java:1363) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:723) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1572) at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:545) at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141) at android.support.v4.view.ViewPager.populate(ViewPager.java:1106) at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:552) at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:514) at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:506) at md5270abb39e60627f0f200893b490a1ade.TabbedPageRenderer.n_onTabSelected(Native Method) at md5270abb39e60627f0f200893b490a1ade.TabbedPageRenderer.onTabSelected(TabbedPageRenderer.java:86) at android.support.design.widget.TabLayout.selectTab(TabLayout.java:837) at android.support.design.widget.TabLayout.selectTab(TabLayout.java:809) at android.support.design.widget.TabLayout$Tab.select(TabLayout.java:1077) at android.support.design.widget.TabLayout$1.onClick(TabLayout.java:643) at android.view.View.performClick(View.java:4475) at android.view.View$PerformClick.run(View.java:18786) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:176) at android.app.ActivityThread.main(ActivityThread.java:5419) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) at dalvik.system.NativeStart.main(Native Method)

    Thursday, March 3, 2016 10:57 AM
  • User81232 posted

    @RonaldVerhaegen I'm getting the exact same issue! Multiple tabs, all with NavigationPages. 2 tabs work, but 3+ is a total disaster. Have you filed a bugzilla bug report?

    I've now downgraded to 2.0.1 as well. Not good at a hackathon wasting an hour+ trying to figure out if this issue is yours or Xamarin Forms :(

    Sunday, March 6, 2016 9:30 PM
  • User31582 posted

    Same exception here after update to the stable version (Recursive entry to executePendingTransactions). It happens to Tabs that are NavigationPages.

    ErrorStack:

    MonoDroid] UNHANDLED EXCEPTION: [MonoDroid] Java.Lang.IllegalStateException: Recursive entry to executePendingTransactions [MonoDroid] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/2970/46c3f7e0/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 [MonoDroid] at Android.Runtime.JNIEnv.CallBooleanMethod (IntPtr jobject, IntPtr jmethod) [0x00063] in /Users/builder/data/lanes/2970/46c3f7e0/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:218 [MonoDroid] at Android.Support.V4.App.FragmentManagerInvoker.ExecutePendingTransactions () [0x00033] in <filename unknown>:0 [MonoDroid] at Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer.Dispose (Boolean disposing) [0x0007a] in <filename unknown>:0 [MonoDroid] at Java.Lang.Object.Dispose () [0x00000] in /Users/builder/data/lanes/2970/46c3f7e0/source/monodroid/src/Mono.Android/src/Java.Lang/Object.cs:115 [MonoDroid] at Xamarin.Forms.Platform.Android.AppCompat.FragmentContainer.OnDestroyView () [0x00066] in <filename unknown>:0 [MonoDroid] at Android.Support.V4.App.Fragment.n_OnDestroyView (IntPtr jnienv, IntPtr native__this) [0x00009] in <filename unknown>:0 [MonoDroid] at (wrapper dynamic-method) System.Object:9663dd24-179c-493c-b96e-eddc2c4af0d0 (intptr,intptr) [MonoDroid] --- End of managed exception stack trace --- [MonoDroid] java.lang.IllegalStateException: Recursive entry to executePendingTransactions [MonoDroid] at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1544) [MonoDroid] at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:545) [MonoDroid] at md5270abb39e60627f0f200893b490a1ade.FragmentContainer.n_onDestroyView(Native Method) [MonoDroid] at md5270abb39e60627f0f200893b490a1ade.FragmentContainer.onDestroyView(FragmentContainer.java:57) [MonoDroid] at android.support.v4.app.Fragment.performDestroyView(Fragment.java:2167) [MonoDroid] at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1100) [MonoDroid] at android.support.v4.app.FragmentManagerImpl.detachFragment(FragmentManager.java:1363) [MonoDroid] at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:723) [MonoDroid] at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1572) [MonoDroid] at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:545) [MonoDroid] at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141) [MonoDroid] at android.support.v4.view.ViewPager.populate(ViewPager.java:1106) [MonoDroid] at android.support.v4.view.ViewPager.populate(ViewPager.java:952) [MonoDroid] at android.support.v4.view.ViewPager$3.run(ViewPager.java:251) [MonoDroid] at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777) [MonoDroid] at android.view.Choreographer.doCallbacks(Choreographer.java:590) [MonoDroid] at android.view.Choreographer.doFrame(Choreographer.java:559) [MonoDroid] at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763) [MonoDroid] at android.os.Handler.handleCallback(Handler.java:739) [MonoDroid] at android.os.Handler.dispatchMessage(Handler.java:95) [MonoDroid] at android.os.Looper.loop(Looper.java:145) [MonoDroid] at android.app.ActivityThread.main(ActivityThread.java:5951) [MonoDroid] at java.lang.reflect.Method.invoke(Native Method) [MonoDroid] at java.lang.reflect.Method.invoke(Method.java:372) [MonoDroid] at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400) [MonoDroid] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)

    Xamarin Versions:

    `=== Xamarin Studio ===

    Version 5.10.3 (build 26) Installation UUID: 2da1bf86-58d4-48a4-bc46-3e4ca6c77051 Runtime: Mono 4.2.3 (explicit/832de4b) GTK+ 2.24.23 (Raleigh theme)

    === Xamarin.Profiler ===

    Not Installed

    === Xamarin.Android ===

    Version: 6.0.2.1 (Indie Edition) Android SDK: /Users/demo/Library/Developer/Xamarin/android-sdk-mac_x86 Supported Android versions: 2.3 (API level 10) 4.0.3 (API level 15) 4.1 (API level 16) 4.2 (API level 17) 4.3 (API level 18) 4.4 (API level 19) 4.4.87 (API level 20) 5.0 (API level 21) 5.1 (API level 22) 6.0 (API level 23)

    SDK Tools Version: 24.4.1 SDK Platform Tools Version: 23.0.1 SDK Build Tools Version: 23.0.2

    Java SDK: /usr java version "1.7.071" Java(TM) SE Runtime Environment (build 1.7.071-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

    Android Designer EPL code available here: https://github.com/xamarin/AndroidDesigner.EPL

    === Xamarin Android Player ===

    Not Installed

    === Apple Developer Tools ===

    Xcode 7.2.1 (9548.1) Build 7C1002

    === Xamarin.iOS ===

    Version: 9.4.2.27 (Indie Edition) Hash: 58ba2bc Branch: master Build date: 2016-03-03 09:05:19-0500

    === Xamarin.Mac ===

    Version: 2.4.1.7 (Starter Edition)

    === Build Information ===

    Release ID: 510030026 Git revision: ac9b7fcba9ee92ac30c8eb90f20c2228ce033efa Build date: 2016-03-01 18:02:09-05 Xamarin addins: 633fde3bf405e3c402a51980976c431c204cf4f6 Build lane: monodevelop-lion-cycle6-c6sr2

    === Operating System ===

    Mac OS X 10.10.5 Darwin Alexanders-Mac-Mini.local 14.5.0 Darwin Kernel Version 14.5.0 Tue Sep 1 21:23:09 PDT 2015 root:xnu-2782.50.1~1/RELEASEX8664 x86_64`

    Tuesday, March 8, 2016 9:44 AM
  • User79408 posted

    Same problem here, and it happens also in 2.0.1.!

    The issue for me occurs with FormsAppCompatActivity, if i switch back to FormsApplicationActivity then it works but then you loose all the Material Design, that hurts!.

    Tuesday, March 15, 2016 11:58 AM
  • User89714 posted

    @BastiBrauning @TheRealJasonSmith - I am seeing the same problems with scrolling ListViews and with updating ItemsSource on ListViews when using Android, that Basti reported. The difference is that I am building with Xamarin.Forms 2.2.0.31 . Are these problems thought to have been fixed in 2.2 ?

    Thursday, May 19, 2016 2:11 PM
  • User40173 posted

    What specific issue do you mean?

    Thursday, May 19, 2016 3:41 PM
  • User89714 posted

    @BastiBrauning - I am getting a couple of exceptions from Android ListViews. One when scrolling to near the bottom of the list, the other when changing ItemsSource. Full stack traces are too long to post here, but this is the start of one:

    05-19 14:51:52.287 I/MonoDroid(15762): UNHANDLED EXCEPTION: 05-19 14:51:52.307 I/MonoDroid(15762): Java.Lang.ArrayIndexOutOfBoundsException: length=20; index=21 05-19 14:51:52.307 I/MonoDroid(15762): at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/3053/a94a03b5/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 05-19 14:51:52.317 I/MonoDroid(15762): at Android.Runtime.JNIEnv.CallVoidMethod (IntPtr jobject, IntPtr jmethod, Android.Runtime.JValue* parms) [0x00063] in /Users/builder/data/lanes/3053/a94a03b5/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:571 05-19 14:51:52.317 I/MonoDroid(15762): at Android.Views.ViewGroup.Layout (Int32 l, Int32 t, Int32 r, Int32 b) [0x00082] in /Users/builder/data/lanes/3053/a94a03b5/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Android.Views.ViewGroup.cs:3763 05-19 14:51:52.327 I/MonoDroid(15762): at Xamarin.Forms.Platform.Android.ViewRenderer`2[TView,TNativeView].OnLayout (Boolean changed, Int32 l, Int32 t, Int32 r, Int32 b) [0x00059] in C:\BuildAgent3\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\ViewRenderer.cs:123 05-19 14:51:52.327 I/MonoDroid(15762): at Xamarin.Forms.Platform.Android.ListViewRenderer.OnLayout (Boolean changed, Int32 l, Int32 t, Int32 r, Int32 b) [0x00000] in C:\BuildAgent3\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\Renderers\ListViewRenderer.cs:165 05-19 14:51:52.327 I/MonoDroid(15762): at Xamarin.Forms.Platform.Android.FormsViewGroup.nOnLayoutZIIII (IntPtr jnienv, IntPtr native_this, Boolean p0, Int32 p1, Int32 p2, Int32 p3, Int32 p4) [0x00008] in C:\BuildAgent3\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android.FormsViewGroup\obj\Release\generated\src\Xamarin.Forms.Platform.Android.FormsViewGroup.cs:240 05-19 14:51:52.327 I/MonoDroid(15762): at (wrapper dynamic-method) System.Object:a1c72caf-fa3c-4721-b24c-095f5a6a295c (intptr,intptr,bool,int,int,int,int) 05-19 14:51:52.327 I/MonoDroid(15762): --- End of managed exception stack trace --- 05-19 14:51:52.327 I/MonoDroid(15762): java.lang.ArrayIndexOutOfBoundsException: length=20; index=21 05-19 14:51:52.327 I/MonoDroid(15762): at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:6989) 05-19 14:51:52.337 I/MonoDroid(15762): at android.widget.ListView.layoutChildren(ListView.java:1661) 05-19 14:51:52.337 I/MonoDroid(15762): at android.widget.AbsListView.onLayout(AbsListView.java:2193) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.337 I/MonoDroid(15762): at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:596) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.ListViewRenderer.nonLayout(Native Method) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.ListViewRenderer.onLayout(ListViewRenderer.java:64) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.337 I/MonoDroid(15762): at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:29) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer1.nonLayout(Native Method) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer1.onLayout(VisualElementRenderer1.java:48) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.337 I/MonoDroid(15762): at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:29) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer1.nonLayout(Native Method) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer1.onLayout(VisualElementRenderer1.java:48) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.337 I/MonoDroid(15762): at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:29) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer1.nonLayout(Native Method) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer1.onLayout(VisualElementRenderer1.java:48) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.337 I/MonoDroid(15762): at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:29) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer1.nonLayout(Native Method) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer1.onLayout(VisualElementRenderer1.java:48) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.337 I/MonoDroid(15762): at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:29) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer1.nonLayout(Native Method) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer1.onLayout(VisualElementRenderer1.java:48) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.337 I/MonoDroid(15762): at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:29) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.NavigationRenderer.nonLayout(Native Method) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.NavigationRenderer.onLayout(NavigationRenderer.java:62) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.337 I/MonoDroid(15762): at com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout(FormsViewGroup.java:29) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.PlatformRenderer.nonLayout(Native Method) 05-19 14:51:52.337 I/MonoDroid(15762): at md5b60ffeb829f638581ab2bb9b1a7f4f3f.PlatformRenderer.onLayout(PlatformRenderer.java:62) 05-19 14:51:52.337 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.347 I/MonoDroid(15762): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671) 05-19 14:51:52.347 I/MonoDroid(15762): at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1660) 05-19 14:51:52.347 I/MonoDroid(15762): at android.widget.LinearLayout.onLayout(LinearLayout.java:1436) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.347 I/MonoDroid(15762): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) 05-19 14:51:52.347 I/MonoDroid(15762): at android.widget.FrameLayout.onLayout(FrameLayout.java:388) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.347 I/MonoDroid(15762): at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:374) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.347 I/MonoDroid(15762): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) 05-19 14:51:52.347 I/MonoDroid(15762): at android.widget.FrameLayout.onLayout(FrameLayout.java:388) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.View.layout(View.java:15346) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.ViewGroup.layout(ViewGroup.java:4686) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2075) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1832) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1057) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5857) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:815) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.Choreographer.doCallbacks(Choreographer.java:628) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.Choreographer.doFrame(Choreographer.java:598) 05-19 14:51:52.347 I/MonoDroid(15762): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:801) 05-19 14:51:52.347 I/MonoDroid(15762): at android.os.Handler.handleCallback(Handler.java:755) 05-19 14:51:52.347 I/MonoDroid(15762): at android.os.Handler.dispatchMessage(Handler.java:95) 05-19 14:51:52.347 I/MonoDroid(15762): at android.os.Looper.loop(Looper.java:145) 05-19 14:51:52.347 I/MonoDroid(15762): at android.app.ActivityThread.main(ActivityThread.java:5266) 05-19 14:51:52.347 I/MonoDroid(15762): at java.lang.reflect.Method.invokeNative(Native Method) 05-19 14:51:52.347 I/MonoDroid(15762): at java.lang.reflect.Method.invoke(Method.java:515) 05-19 14:51:52.347 I/MonoDroid(15762): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:826) 05-19 14:51:52.347 I/MonoDroid(15762): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:642) 05-19 14:51:52.347 I/MonoDroid(15762): at dalvik.system.NativeStart.main(Native Method)

    Thursday, May 19, 2016 4:02 PM
  • User42807 posted

    @JohnHardman I'm experiencing the same issue:

    @TheRealJasonSmith Did you have a fix for this issue?

    I attached my stacktrace.

    Sunday, May 22, 2016 11:46 PM
  • User228750 posted

    Maybe its a little late, but i must give my thanks to: @MichaelRumpler , @TheRealJasonSmith and @AnthonyRamirez

    On the [pag. 3], you was discussing about: Regarding Generic versions of Create () BindableProperty are no longer supported and deprecated;

    That helped me a lot to understand and improve my knowledge of Xamarin , maybe I didnt have mistakes and was not looking for a solution to a problem, but it sure has helped me to not have them in the future. ¡Thank u!

    Tuesday, July 5, 2016 10:35 AM
  • User55225 posted

    @MetaK Happy to help :smiley:

    All the best!

    Tuesday, July 5, 2016 7:23 PM
  • User9811 posted

    So what would the following translate to:

    public static readonly BindableProperty EventNameProperty = BindableProperty.Create<EventToCommandBehavior, string>(p => p.EventName, null);

    Thursday, July 18, 2019 7:55 AM