Bug 25545 - CarouselPage rotation on iOS on iPad leaves page in half shown state.
Summary: CarouselPage rotation on iOS on iPad leaves page in half shown state.
Status: VERIFIED FIXED
Alias: None
Product: Forms
Classification: Xamarin
Component: Forms (show other bugs)
Version: 1.3.0
Hardware: PC Windows
: Normal normal
Target Milestone: ---
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2014-12-19 22:41 UTC by arash
Modified: 2015-01-28 13:37 UTC (History)
7 users (show)

See Also:
Tags:
Is this bug a regression?: ---
Last known good build:


Attachments
while in portrait mode swipe to second page(red page) then rotate the device to go to landscape mode you will see first page(green page) would show as part of the page. (1.45 MB, image/jpeg)
2014-12-19 22:41 UTC, arash
Details

Description arash 2014-12-19 22:41:35 UTC
Created attachment 9155 [details]
while in portrait mode swipe to second page(red page) then rotate the device to go to landscape mode you will see first page(green page) would show as part of the page.

Hi Xamarin Experts,

I have a project that heavily uses the Xamarin.Forms to speed up the development. However, I am having issues with CarouselPage in iPad. Below is my code:

public class App { 
     public static Page GetMainPage () {

        CarouselPage MyCarouselPage = new CarouselPage
        {
            Children =
            {
                new ContentPage 
                { 
                    BackgroundColor = Color.Green

                },
                new ContentPage 
                { 
                    BackgroundColor = Color.Red
                },
                new ContentPage 
                { 
                    BackgroundColor = Color.Lime
                },
                new ContentPage 
                { 
                    BackgroundColor = Color.Purple
                },
            }

        };

        return MyCarouselPage;

    }
}

If you just copy paste this code into a xamarin forms project and run it on ipad Mini with 8.1 ios. and then go to second page on Carousel and rotate device to landscape mode, you will see half of the page if page 2 and part of page1 appears( partly green partly red). I am pretty sure it is a bug in CarouselPage. Would there be an easy workaround for this? Or I have to just forget Xamarin.Forms and do Carousel all in native iOS?


Steps to reproduce issue:

After running above code do the below:

while in portrait mode swipe to second page(red page) then rotate the device to go to landscape mode you will see first page(green page) would show as part of the page.

Please note that this is a very urgent issue in my current project and is really creating a terrible user experience in the app. 


Really appreciate your support. 



Arash
Comment 1 Ram Chandra 2014-12-30 10:36:03 UTC
I have checked this issue and I am able to reproduce this behavior.

Steps I followed:

1. Create a Blank App (Xamarin.Forms Portable).
2. Write the following code in App.cs file

public class App { 
     public static Page GetMainPage () {

        CarouselPage MyCarouselPage = new CarouselPage
        {
            Children =
            {
                new ContentPage 
                { 
                    BackgroundColor = Color.Green

                },
                new ContentPage 
                { 
                    BackgroundColor = Color.Red
                },
                new ContentPage 
                { 
                    BackgroundColor = Color.Lime
                },
                new ContentPage 
                { 
                    BackgroundColor = Color.Purple
                },
            }

        };

        return MyCarouselPage;

    }
}

3. Build and deploy the project
4. Swipe to the second page.
5. change the orientation of device (either portrait or landscape)

When I change the orientation of device I observed that app shows the part of page. It doesn't shows the full page.

Screencast:  http://www.screencast.com/t/qzRFWk3uOj
                     http://www.screencast.com/t/1qrkZo9lmT

Build output: https://gist.github.com/Rajneesh360Logica/517bec428cc3cadfc30e

Environment Info:

Xamarin.Forms: 1.3.1.0

Windows Info:

Microsoft Visual Studio Professional 2013
Version 12.0.30723.00 Update 3
Microsoft .NET Framework
Version 4.5.50938
Installed Version: Professional
Xamarin   3.8.150.0 (10cfd178d55287f09c85f5a1e604dfe20889a40f)
Xamarin.Android   4.20.0.28 (ba9bbbdd44cfdc4bf485e8885bd2ad24fba525f7)
Xamarin.iOS   8.4.0.0 (840a925103a0bf4a856507f13d5eaee3c1579c2f)

Mac Info:

Mac OS X 10.9.5
Xamarin Studio: 5.5.4 (build 15)
Mono 3.10.0 ((detached/92c4884)
GTK+ 2.24.23 (Raleigh theme)
Package version: 310000031
Xcode 6.1 (6604)
Xamarin.iOS: 8.4.0.47 (Business Edition)
=== Build Information ===
Release ID: 505040015
Git revision: f93940a35458a18052f1a25e106e62ca970d9c40
Build date: 2014-11-19 15:32:41-05
Xamarin addins: dc23cbd91a3a0e1d326328e1229e86c942a49ec8
Comment 2 Jason Smith [MSFT] 2015-01-14 18:13:48 UTC
This bug fix couldn't make the 1.3.0/1.3.1 release because it was already frozen by the time it was reported. I am starting to investigate now.
Comment 3 Jason Smith [MSFT] 2015-01-14 18:25:12 UTC
Should be fixed in 1.3.2-pre1
Comment 4 Udham Singh 2015-01-28 13:37:11 UTC
I have checked this issue on following builds

Environment Info : 

Xamarin.Forms 1.3.2.6307

Mac OS X 10.9.5
Xamarin Studio  5.7.1 (build 15)
Mono 3.12.0 ((detached/a813491)
GTK+ 2.24.23 (Raleigh theme)
Xcode 6.1.1 (6611)
Xamarin.iOS 8.6.1.23 (Business Edition)
Xamarin.Android 4.20.0.28 (Business Edition)

Now this is working fine, Hence closing this issue.

Screencast : http://www.screencast.com/t/chRQfDiu

Note You need to log in before you can comment on or make changes to this bug.