Bug 59741 - Carousel Page in iOS11 is causing inside ListView cannot scroll to refresh
Summary: Carousel Page in iOS11 is causing inside ListView cannot scroll to refresh
Status: CONFIRMED
Alias: None
Product: Forms
Classification: Xamarin
Component: Forms (show other bugs)
Version: 2.4.0
Hardware: PC Mac OS
: --- normal
Target Milestone: ---
Assignee: Bugzilla
URL:
: 59740 60022 60310 (view as bug list)
Depends on:
Blocks:
 
Reported: 2017-09-26 08:14 UTC by Deyun Liu
Modified: 2017-11-21 15:06 UTC (History)
8 users (show)

See Also:
Tags: ios 11, listview, pulltorefresh, ac
Is this bug a regression?: ---
Last known good build:


Attachments

Description Deyun Liu 2017-09-26 08:14:19 UTC
I have a project for Xamarin Forms which contains a CarouselPage under a NavagationPage. Then inside the CarouselPage it has a list which has a command to do the refreshing for the list. However, found that if I run the Simulator for iOS 11 OS, the CarouselPage itself will be able to be scrolled up and down. Then it will be impossible to scroll down the ListView within it to do the refresh.

Please get the sample code from https://drive.google.com/open?id=0B3bexldhTlAyNTBScUdnZEVRNTQ 

Thanks

Allen
Comment 1 Paul DiPietro [MSFT] 2017-09-26 17:07:46 UTC
*** Bug 59740 has been marked as a duplicate of this bug. ***
Comment 2 Paul DiPietro [MSFT] 2017-09-26 18:28:59 UTC
Verified testing for the behavior against 2.4.0-pre3 where it occurs on iOS 11, but not iOS 10.
Comment 3 Paul DiPietro [MSFT] 2017-10-06 14:16:34 UTC
*** Bug 60022 has been marked as a duplicate of this bug. ***
Comment 4 Paul DiPietro [MSFT] 2017-10-23 23:57:03 UTC
*** Bug 60310 has been marked as a duplicate of this bug. ***
Comment 5 William Watterson 2017-10-24 08:01:05 UTC
Do we have any idea at this stage when this will be fixed?
Comment 6 anton.duzenko@gmail.com 2017-10-24 08:35:11 UTC
Bugs like this make me want to discourage anyone from using Xamarin on important projects. Not the bugs themselves but reluctance to communicate with developers about bugs.
Comment 7 Paul DiPietro [MSFT] 2017-10-24 14:14:31 UTC
The bug has not yet been scheduled for work, so I cannot provide an exact timeline on a fix for this. In the meantime, we also welcome PRs from the community, so you're also welcome to submit one for us to review if you become aware of a fix.
Comment 8 Igor Sychev 2017-11-14 20:23:14 UTC
Hello.

As a workaround, try following solution (which slove my problem):

[assembly: ExportRenderer(typeof(BaseCarouselPage), typeof(BaseCarouselPageRenderer))]
namespace Inspector.iOS.CustomRender
{
    public sealed class BaseCarouselPageRenderer : CarouselPageRenderer
    {
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            View.Subviews.OfType<UIScrollView>().Single().ContentInsetAdjustmentBehavior =
                UIScrollViewContentInsetAdjustmentBehavior.Never;
        }
    }
}
Comment 10 Robert Vaselaar 2017-11-20 22:22:23 UTC
This worked for me
Comment 11 Robert Vaselaar 2017-11-20 22:23:09 UTC
Igor's workaround, that is
Comment 12 Igor Sychev 2017-11-21 15:06:42 UTC
Remarks: 
This solution is only necessary for the iOS 11 and greater.
In oldest version of iOS this can lead to falls.

So you must check iOS version, before set WA:

if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
            {
                View.Subviews.OfType<UIScrollView>().Single().ContentInsetAdjustmentBehavior =
                    UIScrollViewContentInsetAdjustmentBehavior.Never;
            }

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