You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MAUI应用中列表无法滚动到底部问题求助

解决MAUI CollectionView无法滚动到底部的问题

针对你遇到的训练计划历史列表无法滚动到底部的问题,给你几个具体的排查和修改方向:

1. 移除CollectionView的固定WidthRequest

你的CollectionView设置了WidthRequest="350",硬编码宽度会导致不同屏幕尺寸下内容超出父容器,或者滚动区域计算错误。建议移除该属性,让控件自适应父容器,并明确设置垂直布局选项:

<CollectionView Grid.Row="1"
                x:Name="CollectionView"
                IsVisible="true"
                VerticalOptions="FillAndExpand"
                HorizontalOptions="Fill"
                ItemTemplate="{StaticResource Exercices}"
                BackgroundColor="#FEFAE2"
                ItemsSource="{Binding SelectedProgramActivity}" />

2. 修复DataTemplate中的布局问题

你用固定Margin="240,15,0,0"定位日期标签的方式,容易导致Item内容超出容器,干扰滚动区域计算。改成用Grid列布局实现自适应排列:

<DataTemplate x:Key="Activite">
    <Border Stroke="#000000" StrokeThickness="3" BackgroundColor="#F2EED5" StrokeShape="RoundRectangle 10, 20, 20, 10" Margin="0,10,5,20">
        <Grid ColumnDefinitions="*,*" Padding="15">
            <Label Text="{Binding Name}"
                   Grid.Column="0"
                   HorizontalTextAlignment="Center"
                   FontSize="Small"
                   TextColor="#100905" />
            <Label Text="{Binding Date, StringFormat='{0:dd/MM/yyyy}'}"
                   Grid.Column="1"
                   HorizontalTextAlignment="Center"
                   FontSize="Small"
                   TextColor="#100905" />
        </Grid>
    </Border>
</DataTemplate>

这里去掉了冗余的HorizontalStackLayout,直接用Grid两列分配空间,添加Padding避免内容贴边,让布局更适配不同屏幕。

3. 确认ItemsSource的类型

确保SelectedProgramActivity是ObservableCollection<T>而非普通List。ObservableCollection能自动通知UI更新,保证CollectionView正确计算滚动区域大小:

public ObservableCollection<ActivityModel> SelectedProgramActivity { get; set; } = new();

4. 异步加载数据后手动滚动(可选)

如果数据是异步加载的,加载完成后可手动触发滚动到底部:

在代码后台或ViewModel数据加载完成的逻辑中添加:

// 数据加载完成后调用
CollectionView.ScrollTo(SelectedProgramActivity.LastOrDefault(), ScrollToPosition.End, animate: true);

额外检查

  • 确认Grid的RowDefinitions="Auto,*"配置正确,确保顶部控件仅占所需高度,剩余空间全部分配给CollectionView
  • 检查页面是否嵌套了ScrollView,MAUI中嵌套滚动控件会引发滚动冲突,若有外层ScrollView建议移除(CollectionView自带滚动功能)

内容的提问来源于stack exchange,提问作者Eloi Jahan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 19:39:52