GridView
一个可滚动的、二维的控件数组。
信息
对于大型列表(数千个项目),GridView非常有效。在实现平滑滚动时,优先选择它而不是包装 Column
或 Row
。查看Flet Icons Browser以获取GridView的使用示例。
示例
照 片库
- Python
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
沿主轴在每个子项之间的逻辑像素数。