.NET MAUI:如何设置CollectionView展开显示而非滚动?
解决.NET MAUI CollectionView在iOS上自动滚动的问题
要让CollectionView根据项数自动展开显示、无需滚动,可通过以下MAUI自带配置解决,并非由操作系统强制决定:
设置ItemSizingStrategy为MeasureAllItems
这是核心配置,让CollectionView测量所有项的高度并自动调整自身总高度,而非仅测量可见项。在XAML的LinearItemsLayout中添加该设置:<CollectionView.ItemsLayout> <LinearItemsLayout Orientation="Vertical" ItemSizingStrategy="MeasureAllItems" /> </CollectionView.ItemsLayout>避免嵌套ScrollView
如果CollectionView被放在ScrollView内部,iOS会出现滚动冲突,导致CollectionView自动滚动或高度计算异常。移除外层ScrollView,让CollectionView直接作为布局容器的子元素。配置正确的布局选项
给CollectionView设置VerticalOptions="FillAndExpand",同时确保父容器的布局约束允许其充分展开(比如Grid所在行设为Auto或*,StackLayout无需额外固定高度):<CollectionView ItemsSource="{Binding YourIntegerList}" VerticalOptions="FillAndExpand"> <!-- 项模板及其他配置 --> </CollectionView>不设置固定HeightRequest
不要给CollectionView设置固定高度,让它自动根据所有项的总高度调整自身尺寸。
若仍有问题,检查项模板内的元素布局,确保每个项的高度是可正常测量的(避免给项内元素设置不合理的固定高度导致测量错误)。
内容的提问来源于stack exchange,提问作者eengstroem
相关产品推荐
相关产品推荐

