I have a page that consists of one vertically oriented ScrollView. The problem I'm having is when the content goes beyond the bottom of the page all content below the fold is cut off when scrolling. The odd thing is if I rotate the device, everything renders correctly, and if I rotate back everything gets rendered.
This only happens on Android, iOS and UWP everything works fine. The content of the ScrollView is below. I've tried adding Margin="0" to all of the children as suggested in a StackOverflow question but it didn't help.
In the code behind, I add 0 to n Grids to the workContainer StackLayout. The effect is used to trigger a "page rendered" type of event.
<ScrollView Orientation="Vertical" x:Name="verticalScroller" IsClippedToBounds="False" VerticalOptions="FillAndExpand">
<StackLayout>
<Grid Margin="15,6,15,6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width = "1*" />
<ColumnDefinition Width = "4.5*" />
<ColumnDefinition Width = "1*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<StackLayout Orientation="Horizontal" Grid.Row="0" Grid.ColumnSpan="3" Grid.Column="0" HorizontalOptions="Start">
<Button Grid.Column="0" Grid.Row="0" Grid.RowSpan="2"
Style="{StaticResource BlueRithmPrimaryButtonStyle }"
Text="{x:Static resourceStrings:AppResources.ButtonAddNote}"
Clicked="AddNoteButton_Clicked"/>
<Button Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Margin="5, 0, 0, 0"
IsVisible="{Binding ParentType, Converter={StaticResource ParentTypeAndRoleToVisibility}}"
Style="{StaticResource BlueRithmPrimaryButtonStyle }"
Text="{x:Static resourceStrings:AppResources.ButtonAddIssue}"
Clicked="AddIssueButton_Clicked"/>
</StackLayout>
<Label Grid.Row="1" Grid.Column="1"
Text="{Binding HeaderTaskCategory}"
MaxLines="1"
FontSize="20"
TextColor="White"
VerticalOptions="CenterAndExpand"
HorizontalOptions="Center" />
<StackLayout Grid.Row="2" Grid.Column="1"
Orientation="Horizontal"
VerticalOptions="CenterAndExpand"
HorizontalOptions="Center">
<Label FontSize="20"
Style="{StaticResource EditLabelStyle}"
VerticalOptions="CenterAndExpand"
HorizontalOptions="Center"
IsVisible="{Binding Task.AssignedToId, Converter={StaticResource UserIdToVisible}}">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="StatusEdit_Tapped"/>
</Label.GestureRecognizers>
</Label>
<Label x:Name="StatusLabel"
IsVisible="{Binding Task.AssignedToId, Converter={StaticResource UserIdToVisible}}"
FontSize="20"
Padding="6,0,6,0"
TextColor="{Binding Status, Converter={StaticResource StatusToTextColor}}"
Text="{Binding Status, Converter={StaticResource StatusToText}}"
BackgroundColor="{Binding Status, Converter={StaticResource StatusToColor}}"
VerticalOptions="CenterAndExpand"
HorizontalOptions="Center" >
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="StatusEdit_Tapped"/>
</Label.GestureRecognizers>
</Label>
<Label IsVisible="{Binding Task.AssignedToId, Converter={StaticResource UserIdToVisibleReverse}}"
FontSize="20"
Padding="6,0,6,0"
TextColor="{Binding Status, Converter={StaticResource StatusToTextColor}}"
Text="{Binding Status, Converter={StaticResource StatusToText}}"
BackgroundColor="{Binding Status, Converter={StaticResource StatusToColor}}"
VerticalOptions="CenterAndExpand"
HorizontalOptions="Center" >
</Label>
</StackLayout>
</Grid>
<Label Text="{Binding DescriptionHeader}"
Padding="25,0,6,0"
FontSize="18"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="Start" />
<StackLayout x:Name="workContainer"></StackLayout>
<StackLayout Margin="20,10,20,40">
<BoxView HeightRequest="4" BackgroundColor="Transparent" Color="White" HorizontalOptions="FillAndExpand" />
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="7" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="28"/>
</Grid.RowDefinitions>
<!-- Assigned To -->
<Label Grid.Row="0" Grid.Column="0"
Margin="0,2"
Text="{x:Static resourceStrings:AppResources.LabelAssignedTo}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="End" />
<Label Grid.Row="0" Grid.Column="2"
Margin="0,2"
Text="{Binding AssignedTo}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="Start"/>
<!-- Date Due -->
<Label Grid.Row="1" Grid.Column="0"
Margin="0,2"
Text="{x:Static resourceStrings:AppResources.LabelDueDate}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="End"/>
<Label Grid.Row="1" Grid.Column="2"
Margin="0,2"
Text="{Binding DateDue}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="Start"/>
<!-- Hours -->
<Label Grid.Row="2" Grid.Column="0"
Margin="0,2"
Text="{x:Static resourceStrings:AppResources.LabelHours}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="End"/>
<Label Grid.Row="2" Grid.Column="2"
Margin="0,2"
Text="{Binding Hours}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="Start"/>
<!-- Entered By -->
<Label Grid.Row="3" Grid.Column="0"
Margin="0,2"
Text="{x:Static resourceStrings:AppResources.LabelEnteredBy}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="End"/>
<Label Grid.Row="3" Grid.Column="2"
Margin="0,2"
Text="{Binding EnteredBy}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="Start"/>
<!-- Date Entered -->
<Label Grid.Row="4" Grid.Column="0"
Margin="0,2"
Text="{x:Static resourceStrings:AppResources.LabelDateEntered}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="End"/>
<Label Grid.Row="4" Grid.Column="2"
Margin="0,2"
Text="{Binding DateEntered}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="Start"/>
<!-- Last Edit By -->
<Label Grid.Row="5" Grid.Column="0"
Margin="0,2"
Text="{x:Static resourceStrings:AppResources.LabelLastEditBy}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="End"/>
<Label Grid.Row="5" Grid.Column="2"
Margin="0,2"
Text="{Binding LastEditBy}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="Start"/>
<!-- Last Edit -->
<Label Grid.Row="6" Grid.Column="0"
Margin="0,2"
Text="{x:Static resourceStrings:AppResources.LabelLastEditDate}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="End"/>
<Label Grid.Row="6" Grid.Column="2"
Margin="0,2"
Text="{Binding LastEdit}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="Start"/>
<!-- Completed By -->
<Label Grid.Row="7" Grid.Column="0"
Margin="0,2"
Text="{x:Static resourceStrings:AppResources.LabelMarkedCompletedBy}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="End"/>
<Label Grid.Row="7" Grid.Column="2"
Margin="0,2"
Text="{Binding CompletedBy}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="Start"/>
<!-- Completed Date -->
<Label Grid.Row="8" Grid.Column="0"
Margin="0,2"
Text="{x:Static resourceStrings:AppResources.LabelDateCompleted}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="End"/>
<Label Grid.Row="8" Grid.Column="2"
Margin="0,2"
Text="{Binding CompletedDate}"
TextColor="White"
VerticalOptions="Center"
HorizontalOptions="Start">
<Label.Effects>
<effects:ViewLifecycleEffect Loaded="Page_Loaded"></effects:ViewLifecycleEffect>
</Label.Effects>
</Label>
</Grid>
</StackLayout>
</StackLayout>
</ScrollView>