跳到主要内容

列表视图 ListView

一个按线性排列的可滚动控件列表。

ListView 是最常用的滚动控件。ListView(列表视图)是一个可滚动的控件,它将其子控件按照滚动方向依次排列。在交叉轴上,子控件需要填充ListView。

信息

对于大型列表(成千上万个项目),ListView非常有效。相比于ColumnRow,它能提供平滑的滚动效果。

示例

示例演示

自动滚动的ListView

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"Line {count}"))
count += 1

page.add(lv)

for i in range(0, 60):
sleep(1)
lv.controls.append(ft.Text(f"Line {count}"))
count += 1
page.update()

ft.app(target=main)

属性

auto_scroll

设置为True时,滚动条会在子控件更新时自动移动到末尾位置。如果要使用scroll_to()方法,必须将其设置为False

controls

一个包含在ListView中显示的Control列表。

divider_thickness

如果大于0,则使用分隔符作为ListView项目之间的间距。

first_item_prototype

如果设置为True,则ListView的第一个项目的尺寸将作为其他所有项目的“原型”,即它们的高度或宽度将与第一个项目相同。默认值为False

horizontal

如果设置为True,则水平布局ListView的项目。

item_extent

设置ListView中项目的固定高度或宽度(对于水平布局的ListView)。这可以优化渲染性能。

on_scroll_interval

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

padding

子控件的边距值,用来设置ListView的内部空白间距。

有关更多信息和可能的值,请参考Container.padding属性。

reverse

Defines whether the scroll view scrolls in the reading direction. Defaults to False.

spacing

ListView项目之间的分隔符高度。如果未指定,则项目之间没有间隔。

方法

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

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

有关方法详细信息和示例,请参考Column.scroll_to()

事件

on_scroll

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

有关事件详细信息和示例,请参考Column.on_scroll