我试图滚动时,我专注于文本字段,但它不工作。如果用户在文本字段写任何东西。它应该滚动。
<ContentPage.Content>
<StackLayout BackgroundColor="{StaticResource 00dp}">
<Frame BorderColor="Transparent" VerticalOptions="FillAndExpand" Margin="10,20,10,20" Padding="0" BackgroundColor="{StaticResource 02dp}" Grid.Row="0" CornerRadius="20" >
<ScrollView VerticalScrollBarVisibility="Always" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" BackgroundColor="{StaticResource 02dp}">
<StackLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<Grid Margin='20' RowSpacing="0" ColumnSpacing="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10*"/>
<ColumnDefinition Width="90*"/>
</Grid.ColumnDefinitions>
<-- more controls -->
</Grid>
</StackLayout>
</ScrollView>
</Frame>
</StackLayout>
</ContentPage.Content>
2条答案
按热度按时间fnvucqvd1#
我不知道这是否回答了你的问题,但也许你应该看看ScrollView作为根布局的ScrollViewer文档。
在您的例子中,将ScrollViewer放在StackLayout中将删除ScrollViewer的所有用途。因为StackLayout将增长以适应其所有子元素的大小,这意味着它将占用所有空间而没有任何限制或需要滚动。您应该将ScrollViewer作为页面的根元素,以便将其内容限制为页面大小。
k5ifujac2#
根据你的描述,这可能是一个已知的问题,在下面的链接中被跟踪,你可以在那里跟进。我还注意到你已经在Github上打开了Inside Stacklayout ScrollView not working #4176,你可以在那里继续跟进。
https://github.com/dotnet/maui/issues/12452
作为目前的替代解决方案,您可以将
ScrollView
作为AbsoluteLayout
的直接子节点,如下所示: