ListView
一个线性排列的可滚动控件列表。
ListView 是最常用的滚动控件。它在滚动方向上依次显示其子项。在交叉轴上,子项需要填充 ListView。
示例
自动滚动的 ListView
- Python
from time import sleep
import flet as ft
def main(page: ft.Page):
page.title = "自动滚动的 ListView"
lv = ft.ListView(expand=1, spacing=10, padding=20, auto_scroll=True)
count = 1
for i in range(0, 60):
lv.controls.append(ft.Text(f"行 {count}"))
count += 1
page.add(lv)
for i in range(0, 60):
sleep(1)
lv.controls.append(ft.Text(f"行 {count}"))
count += 1
page.update()
ft.app(target=main)
属性
auto_scroll
如果滚动条在子项更新时应自动移动到末尾,则为 True
。必须为 False
才能使 scroll_to()
方法起作用。
cache_extent
缓存区域内的项目(在用户滚动时即将变为可见的区域之前或之后的区域)即使不可见也会被布局。 cacheExtent 描述了在前导边缘之前和尾部边缘之后,缓存区域延伸多少像素。
视口将尝试用 cache_extent
在前导边缘之前 + 主轴的尺寸 + 在尾部边缘之后覆盖的总尺寸。
clip_behavior
根据此选项,内容将被裁剪(或不裁剪)。
属性值是 ClipBehavior
。
默认值为 HARD_EDGE
。
controls
要在 ListView 内显示的 Control
列表。
divider_thickness
如果大于 0
,则使用 Divider 作为 ListView 项之间的间距。
first_item_prototype
如果将第一项的尺寸用作所有其他项的“原型”,则为 True
,即它们的高度或宽度将与第一项相同。默认为 False
。
horizontal
True
表示水平布局 ListView 项。
item_extent
优化渲染的项的固定高度或宽度(对于水平 ListView)。
on_scroll_interval
on_scroll
事件的节流间隔(以毫秒为单位)。默认值为 10
。
padding
要插入子项的空间量。
Padding 是 Padding
类的一个实例。
reverse
定义滚动视图是否以读取方向滚动。默认为 False
。
semantic_child_count
将提供语义信息的子项数。
spacing
ListView 项之间的 Divider 的高度。如果未指定,则项之间没有间距。
方法
scroll_to(offset, delta, key, duration, curve)
将滚动位置移动到绝对 offset
、相对 delta
或跳转到指定 key
的控件。
有关方法详细信息和示例,请参见 Column.scroll_to()
。
事件
on_scroll
当用户更改滚动位置时触发。
事件处理程序参数是 OnScrollEvent
类的一个实例。