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: 2018-05-04 13:00 UTC (History)
9 users (show)

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

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report for Bug 59741 on Developer Community or GitHub if you have new information to add and do not yet see a matching new report.

If the latest results still closely match this report, you can use the original description:

  • Export the original title and description: Developer Community HTML or GitHub Markdown
  • Copy the title and description into the new report. Adjust them to be up-to-date if needed.
  • Add your new information.

In special cases on GitHub you might also want the comments: GitHub Markdown with public comments

Related Links:
Status:
CONFIRMED

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;
            }