ft.ListView 是 Flet 中一个非常重要的控件,用于显示可滚动的列表内容。它支持动态加载和长列表优化,非常适合处理大量数据或需要动态更新的场景。以下是对 ft.ListView 的详细解析。
1. ft.ListView 简介
(1) 用途
ft.ListView是一个容器控件,用于显示一组子控件(如文本、按钮、图片等)。- 它支持垂直或水平滚动,能够容纳超出屏幕范围的内容。
(2) 优势
- 性能优化:
- 对于长列表,
ListView只会渲染当前可见的部分内容,从而减少内存占用和提高渲染速度。
- 对于长列表,
- 动态更新:
- 支持动态添加、删除或修改列表项,适合实时更新的场景。
- 灵活性:
- 支持自定义滚动方向、间距、分页等功能。
2. 基本用法
以下是一个简单的示例,展示如何使用 ft.ListView:
import flet as ft
def main(page: ft.Page):
# 创建一个 ListView
list_view = ft.ListView(
spacing=10, # 子控件之间的间距
padding=20, # 内边距
auto_scroll=True, # 自动滚动到最新内容
)
# 添加一些内容到 ListView
for i in range(50):
list_view.controls.append(ft.Text(f"Item {i + 1}"))
# 将 ListView 添加到页面
page.add(list_view)
ft.app(target=main)
3. 参数详解
以下是 ft.ListView 的主要参数及其作用:
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
controls | List[Control] | [] | 列表中的子控件集合。可以通过 append 或直接赋值来添加或修改内容。 |
spacing | int | 0 | 子控件之间的间距(单位为像素)。 |
padding | PaddingValue | None | 内边距,可以是整数或 ft.Padding 对象。 |
divider_thickness | float | None | 分隔线的厚度(单位为像素),如果设置,则会在每个子控件之间显示分隔线。 |
horizontal | bool | False | 是否水平滚动。默认为垂直滚动。 |
auto_scroll | bool | False | 是否自动滚动到最新添加的内容。 |
height | int | None | 设置 ListView 的高度(对于垂直滚动有效)。 |
width | int | None | 设置 ListView 的宽度(对于水平滚动有效)。 |

447

被折叠的 条评论
为什么被折叠?



