Xamarin分组ListView无法滚动问题求助
解决分组ListView无法滚动的问题
嘿,我一眼就揪出问题所在啦!你在ListView的XAML代码里设置了IsEnabled="False"——这个属性会完全禁用ListView的所有交互功能,包括滚动操作!这就是为什么你的分组列表没法滚动,而其他普通ListView能正常工作的核心原因。
第一步:修改IsEnabled属性
把ListView的IsEnabled="False"移除,或者改成IsEnabled="True",修改后的ListView代码如下:
<ListView HasUnevenRows="True" SeparatorColor="Accent" VerticalOptions="FillAndExpand" IsEnabled="True" IsGroupingEnabled="True" GroupDisplayBinding="{Binding Key}" ItemsSource="{Binding ScansGroup}"> <ListView.ItemTemplate> <DataTemplate> <ViewCell> <StackLayout Spacing="4"> <StackLayout Orientation="Horizontal" Margin="10,7,10,1"> <Label Text="{Binding Location, StringFormat='{0}'}" FontAttributes="Bold" FontSize="16" /> <Label Text="{Binding DateTime, StringFormat='{0:dd/MM/y HH:mm}'}" HorizontalOptions="EndAndExpand" /> </StackLayout> <StackLayout Orientation="Horizontal"> <Label Text="{Binding ElapsedTimeOnLocation}" HorizontalOptions="Start" Margin="10,0,10,7" /> </StackLayout> </StackLayout> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView>
其他需要确认的点(如果修改后仍有问题)
- 确保外层
StackLayout没有限制ListView的可用高度:你的外层StackLayout已经是Vertical方向,且ListView设置了VerticalOptions="FillAndExpand",这部分是正确的,它会让ListView占据页面中除两个Label之外的所有剩余空间。 - 验证分组数据源的内容:虽然你说分组显示正常,但可以确认每个分组里的条目数量足够多,确实需要滚动(如果列表内容本来就没超出屏幕,自然不会触发滚动)。
- 检查是否有隐藏的布局冲突:比如有没有不小心嵌套了ScrollView(你已经说明没有,这条可以忽略,但如果后续出现类似问题可以排查)。
修改完IsEnabled属性后,再在模拟器和实体机上测试,滚动功能应该就能正常工作了!
内容的提问来源于stack exchange,提问作者Marijke
相关产品推荐
相关产品推荐

