跳到主要内容

扩展面板列表 ExpansionPanelList

一个材料扩展面板列表,它布置其子项并动画展开。

Examples

Live example

Simple Example

import flet as ft


def main(page: ft.Page):
def handle_change(e: ft.ControlEvent):
print(f"change on panel with index {e.data}")

def handle_delete(e: ft.ControlEvent):
panel.controls.remove(e.control.data)
page.update()

panel = ft.ExpansionPanelList(
expand_icon_color=ft.colors.AMBER,
elevation=8,
divider_color=ft.colors.AMBER,
on_change=handle_change,
controls=[
ft.ExpansionPanel(
# 没有头部和内容 - 将使用占位符
bgcolor=ft.colors.BLUE_400,
expanded=True,
)
]
)

colors = [
ft.colors.GREEN_500,
ft.colors.BLUE_800,
ft.colors.RED_800,
]

for i in range(3):
exp = ft.ExpansionPanel(
bgcolor=colors[i % len(colors)],
header=ft.ListTile(title=ft.Text(f"Panel {i}")),
)

exp.content = ft.ListTile(
title=ft.Text(f"This is in Panel {i}"),
subtitle=ft.Text(f"Press the icon to delete panel {i}"),
trailing=ft.IconButton(ft.icons.DELETE, on_click=handle_delete, data=exp),
)

panel.controls.append(exp)

page.add(panel)


ft.app(target=main)

ExpansionPanelList 属性

controls

要在 ExpansionPanelList 内显示的 ExpansionPanel 列表。

divider_color

ExpansionPanel.expandedFalse 时,分隔符的 颜色

elevation

在展开时定义子控件(ExpansionPanel)的高程。默认值为 2

expanded_header_padding

展开时标题周围的填充。默认值为 padding.symmetric(vertical=16.0)

有关更多信息和可能的值,请参见 Container.padding

expanded_icon_color

符号的 颜色。在明亮主题模式中,默认值为 colors.BLACK_54,在暗主题模式中,默认值为 colors.WHITE_60

spacing

在展开时 ExpansionPanel 之间的间隙大小。

事件

on_change

当展开或折叠 ExpansionPanel 时触发。事件的数据(e.data)包含触发此事件的 ExpansionPanel 的索引。

ExpansionPanel 属性

bgcolor

面板的背景颜色

content

ExpansionPanel 的主体中找到的控件。当面板展开时,它会显示在 header 的下方。

如果此属性为 None,则 ExpansionPanel 将具有占位符 Text 作为内容。

can_tap_header

如果为 True,则点击面板的 header 将展开或折叠它。默认为 False

expanded

一个布尔值,定义 ExpansionPanel 的状态:展开或折叠。默认值为 False

ExpansionPanel 的头部中找到的控件。如果 can_tap_headerTrue,则点击头部将展开或折叠面板。

如果此属性为 None,则 ExpansionPanel 将具有占位符 Text 作为头部。