Bug 59927 - ScrollView height not calculated properly on iOS 11
Summary: ScrollView height not calculated properly on iOS 11
Status: CONFIRMED
Alias: None
Product: Forms
Classification: Xamarin
Component: iOS (show other bugs)
Version: 2.4.0
Hardware: Macintosh Mac OS
: Normal normal
Target Milestone: ---
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2017-10-03 16:00 UTC by Austin Grigg
Modified: 2017-10-09 18:15 UTC (History)
4 users (show)

See Also:
Tags: scrollview, ios 11, safe area, ac
Is this bug a regression?: ---
Last known good build:


Attachments
Scroll view height issue (80.43 KB, image/jpeg)
2017-10-03 16:00 UTC, Austin Grigg
Details

Description Austin Grigg 2017-10-03 16:00:47 UTC
Created attachment 25076 [details]
Scroll view height issue

I have a Xamarin Forms app using version 2.4 (this was also happening though on 2.3.4) with a ContentPage embedded in a NavigationPage with the Navigation bar hidden. Inside the ContentPage is a single ScrollView with a StayLayout within it. On iOS 10 and before the ScrollView's content height would be calculated currently and in portrait mode there would be no scrolling because my content is not big enough. In landscape it would allow for scrolling as the content is larger than the height of the screen. Now, in iOS 11, there is extra space at the bottom of the ScrollView so a button I have pinned to the bottom is pushed under the edge of the screen. It looks like the extra space is the same as the height of the status bar, but that may be coincidental. 

Here is the XAML for this page:

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    x:Class="MyProj.Common.UI.Pages.HomePage" 
    xmlns:local="clr-namespace:MyProj.Common" 
    xmlns:i18n="clr-namespace:MyProj.Common.Locale;assembly=MyProj.Common"
    xmlns:ffimageloading="clr-namespace:FFImageLoading.Forms;assembly=FFImageLoading.Forms">
	<ContentPage.Content>
		<AbsoluteLayout>
			<ScrollView x:Name="HomeScrollView" AbsoluteLayout.LayoutBounds="1,1,1,1" AbsoluteLayout.LayoutFlags="All">
				<StackLayout Orientation="Vertical" Padding="20,70,20,20" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" Spacing="15">
					<StackLayout Orientation="Vertical" Padding="50,0,50,25">
                        <ffimageloading:CachedImage HorizontalOptions="Center" Source = "Logo.png"></ffimageloading:CachedImage>
					</StackLayout>
					<StackLayout Orientation="Vertical" Padding="35,0,35,20">
		            	<Label Text="{i18n:Translate HomeScreenTitle, StringCase=u}" Style="{StaticResource fieldLabelStyle}" HorizontalTextAlignment="Center" />
						<Label Text="{i18n:Translate HomeScreenHelpText}" Style="{StaticResource helpTextStyle}" HorizontalTextAlignment="Center" />
					</StackLayout>
		            <Button x:Name="takePhotoButton" Text="{i18n:Translate CaptureArtworkButton}" Clicked="OnCaptureArtwork" />
					<Button x:Name="chooseExistingButton" Text="{i18n:Translate CaptureMouldingButton}" Style="{StaticResource mutedButtonStyle}" Clicked="OnCaptureMoulding" />
					<Button x:Name="signOutButton" Text="{i18n:Translate SignOutButton}" Clicked="OnSignOut" Style="{StaticResource altButtonStyle}" VerticalOptions="EndAndExpand" />
		        </StackLayout>
			</ScrollView>
		</AbsoluteLayout>
	</ContentPage.Content>
</ContentPage>
Comment 1 Paul DiPietro [MSFT] 2017-10-03 20:23:02 UTC
Might have to do with the safe area in iOS 11 (which is actively being looked into), but it's just a guess.
Comment 2 Gustavo Gonçalves 2017-10-09 14:15:08 UTC
Same issue here, but it looks like the whole scrollview is being pushed down by the height of the status bar.
Comment 3 jmelliadis 2017-10-09 18:15:40 UTC
We are experiencing a similar issue in our application.

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