跳到主要内容

GridView

一个可滚动的、二维的控件数组。

信息

对于大型列表(数千个项目),GridView非常有效。在实现平滑滚动时,优先选择它而不是包装 ColumnRow。查看Flet Icons Browser以获取GridView的使用示例。

示例

在线示例

照片库

import flet as ft

def main(page: ft.Page):
page.title = "GridView 示例"
page.theme_mode = ft.ThemeMode.DARK
page.padding = 50
page.update()

images = ft.GridView(
expand=1,
runs_count=5,
max_extent=150,
child_aspect_ratio=1.0,
spacing=5,
run_spacing=5,
)

page.add(images)

for i in range(0, 60):
images.controls.append(
ft.Image(
src=f"https://picsum.photos/150/150?{i}",
fit=ft.ImageFit.NONE,
repeat=ft.ImageRepeat.NO_REPEAT,
border_radius=ft.border_radius.all(10),
)
)
page.update()

ft.app(target=main, view=ft.AppView.WEB_BROWSER)

属性

auto_scroll

如果滚动条应在更新子项时自动移动到末尾,则为 True。对于 scroll_to() 方法有效,必须为 False

cache_extent

即使在屏幕上尚不可见时,落在缓存区域(在用户滚动时即将变为可见的区域)的项目也会被布局。 cacheExtent 描述了缓存区域在主轴前导边和尾随边的之前延伸的像素数。

视口将尝试使用 controls 覆盖的总范围是在主轴前导边 + 主轴的范围 + 尾随边之后的 cache_extent

child_aspect_ratio

每个子项的交叉轴与主轴范围的比率。

clip_behavior

根据此选项,内容将被裁剪(或不裁剪)。

属性值是 ClipBehavior

默认值为 HARD_EDGE

controls

要在 GridView 内显示的 Control 列表。

horizontal

如果要水平布局 GridView 项目,则为 True

max_extent

网格项的最大宽度或高度。

on_scroll_interval

on_scroll 事件的节流时间间隔,以毫秒为单位。默认值为 10

padding

要缩进子项的空间量。

Padding 是 Padding 类的一个实例。

reverse

定义滚动视图是否按阅读方向滚动。默认为 False

run_spacing

沿交叉轴在每个子项之间的逻辑像素数。

runs_count

交叉轴上的子项数量。

semantic_child_count

将提供语义信息的子项数量。

spacing

沿主轴在每个子项之间的逻辑像素数。

方法

scroll_to(offset, delta, key, duration, curve)

将滚动位置移动到绝对 offset、相对 delta 或跳转到指定 key 的控件。

有关方法详情和示例,请参阅 Column.scroll_to()

事件

on_scroll

用户更改滚动位置时触发。

事件处理程序参数是 OnScrollEvent 类的一个实例。