-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ScrollView doesn't work properly on Android. #7590
Comments
the code you posted, is incomplete and do not produces the image that you shared... |
I think it's a problem with updating the size of controls inside of a ScrollView after initial layout. I just wanted to open an issue myself. I can easily reproduce it like so: <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:html="http://schemas.microsoft.com/dotnet/2021/mauilitehtml"
xmlns:local="clr-namespace:LiteHtmlMaui.TestApp"
x:Class="Maui.TestApp.DynamicPage">
<ContentPage.Content>
<ScrollView VerticalScrollBarVisibility="Always">
<StackLayout>
<BoxView HeightRequest="100" x:Name="bd"></BoxView>
<Button Text="Click" Clicked="Button_Clicked"></Button>
</StackLayout>
</ScrollView>
</ContentPage.Content>
</ContentPage> code behind: public partial class DynamicPage : ContentPage
{
public DynamicPage()
{
InitializeComponent();
}
private void Button_Clicked(object sender, EventArgs e)
{
bd.HeightRequest = 10000;
}
} After clicking the button the button is gone and no scrolling is possible. This happens on Android and iOS but is fine on Windows. |
Thanks for also bringing this up! |
This might be related to this issue I flagged a few days ago #7322 |
Yeah, I think it's anything related to resizing which causes the ScrollView to break because it works fine initially but I update the data with some fetched from an API, and it overflows and breaks. |
if you use a Grid does the same thing happen? |
Haven't tried a Grid yet, but from what I understand, it's any control inside of a ScrollView that's size gets changed from its initial value. |
Tried it with Grid: <Grid RowDefinitions="Auto,Auto" VerticalOptions="FillAndExpand">
<Frame x:Name="html" HeightRequest="1000" BackgroundColor="Red"/>
<Button Grid.Row="1" Clicked="Button_Clicked"></Button>
</Grid> Makes no difference on Android but is even more broken on Windows. On Windows it doesn't even render correctly initially. |
same here, scrolling doesnt work when we have verticalstacklayout inside scrollView. On android doesnt work at all, on Windows works ok. One thing when I populate data during initialization in constructor scrolling works properly so it seems that the problems is in "resizing" layout after initialization |
Yup. Exactly the same here. A really big problem actually; I don't even know how this went unnoticed? |
repro with vs main build 32601.361.main on Android emulator & IOS emulator |
Also massive scrolling problems on Android. What always worked for me as a workaround to not get stuck in project development is hold phone landscape and back again. |
Have this issue as well |
same issue here |
This is my workaround for now. Every time I do something in my ViewModel that I know should affect the vertical height of the page, I call an Action that I assign to this method. By setting the Content property to null, and then back to it's value as defined in XAML, it recalculates it's size and works properly.
|
It's probably the same issue which was fixed in XF some time ago |
Thank you, Greg!... your solution magically came to me at the right time... |
Checked on the latest code, this seems to work there. The fix should be included in the next service release! |
Description
When I wrap a ScrollView around a VerticalStackLayout in Android specifically, or any other control really, if the controls exceed the viewing area, it's not possible to scroll, and everything is simply truncated. https://i.imgur.com/fwfnTfi.png This same project works completely fine on Windows, though, and scrolling works perfectly. Here is the xaml:
Thanks for your time!
(Top part of the code which keeps getting cut off):
Steps to Reproduce
Version with bug
6.0 (current)
Last version that worked well
Unknown/Other
Affected platforms
Android
Affected platform versions
All Android versions
Did you find any workaround?
edit see: #7590 (comment)
Relevant log output
No response
The text was updated successfully, but these errors were encountered: