.NET Multi-platform App UI (.NET MAUI) ScrollView 是能够滚动其内容的视图。 默认情况下,ScrollView 垂直滚动其内容。
ScrollView 属性
-
Content - 这是滚动视图内部包含的内容,通常是一个布局或者视图。你可以将任何UI元素放入ScrollView中以使其可滚动。
-
Orientation - 控制滚动的方向。
Vertical ScrollView 将垂直滚动。 此成员是 Orientation 属性的默认值。 Horizontal 水平滚动。 Both 水平和垂直滚动。 Neither 不会滚动。 -
HorizontalScrollBarVisibility(水平) 和 VerticalScrollBarVisibility(垂直) - 控制滚动条的可见性,可设为Auto、Always(滚动条可见)、Never(滚动条不可见)。
-
ScrollToAsync 方法 - 异步滚动到指定位置。你可以指定滚动到的X和Y坐标,以及是否动画滚动。
-
ContentSize - 设置滚动视图内容区域的大小,这决定了滚动的范围。需要确保ContentSize大于ScrollView本身的大小才能看到滚动效果。
-
InputTransparent - 控制ScrollView是否拦截输入。如果设置为true,则触摸事件会穿透ScrollView传递给下面的视图。
-
Margin 和 Padding - 控制滚动视图与其容器之间以及内容与滚动视图边缘之间的空白空间。
ScrollView 作为根布局
StackLayout 通常是 ScrollView 的子项。 在这种情况下,ScrollView 会使 StackLayout 与其子项的高度之和一样高。 然后,ScrollView 可以确定其内容可以滚动的量。
ScrollView 作为子布局
ScrollView 通常是 Grid 的子项。 ScrollView 需要特定的高度来计算其内容高度与其自身高度之间的差异,该差异是 ScrollView 可以滚动其内容的量。 当 ScrollView 是 Grid 的子项时,它不会获得特定的高度。 Grid 希望 ScrollView 尽可能短,即 ScrollView 内容的高度或零。 要处理这种情况,包含 ScrollView 的 Grid 行的 RowDefinition 应设置为 *。 这会使 Grid 为 ScrollView 提供其他子项不需要的所有额外空间,并且 ScrollView 将具有特定的高度。
检测滚动
<ScrollView Scrolled="OnScrollViewScrolled">
...
</ScrollView>
void OnScrollViewScrolled(object sender, ScrolledEventArgs e)
{
Console.WriteLine($"ScrollX: {e.ScrollX}, ScrollY: {e.ScrollY}");
}
将元素滚动到视图中
await scrollView.ScrollToAsync(label, ScrollToPosition.End, true);
await scrollView.ScrollToAsync(0, 150, true);
qq群 186809679 NET MAUI技术交流群