跳到主要内容

滚动条主题

用于自定义应用程序中滚动条的颜色、厚度和形状。

ScrollbarTheme 类具有以下属性:

thumb_visibility

表示滚动条滑块即使在未进行滚动时也应可见。当为 False 时,滚动条仅在滚动时显示,否则会淡出。当为 True 时,滚动条将始终可见且不会淡出。属性值可以是单个布尔值,也可以是一个以 ft.ControlState 为键、布尔值为值的字典。

thickness

滚动条在可滚动内容的交叉轴上的厚度。属性值可以是单个浮点值,也可以是一个以 ft.ControlState 为键、浮点值为值的字典。

track_visibility

表示滚动条轨道应可见。当为 True 时,只要滑块可见,滚动条轨道将始终可见。如果滚动条滑块不可见,轨道也将不可见。当为 None 时,默认为 False。如果此属性为 None,则使用 Theme.scrollbar_themeScrollbarTheme.track_visibility。如果该值也为 None,则默认值为 False。属性值可以是单个布尔值,也可以是一个以 ft.ControlState 为键、布尔值为值的字典。

radius

滚动条滑块的圆角矩形角的半径。

thumb_color

覆盖滚动条滑块的默认颜色。值可以是单个颜色字符串或 ft.ControlState 字典。

track_color

覆盖滚动条轨道的默认颜色。值可以是单个颜色字符串或 ft.ControlState 字典。

track_border_color

覆盖滚动条轨道边框的默认颜色。值可以是单个颜色字符串或 ft.ControlState 字典。

cross_axis_margin

滚动条滑块到最近的交叉轴边缘的逻辑像素距离。滚动条轨道会占用此空间。不能为空,默认为 0。

main_axis_margin

滚动条滑块的起始端和末端到视口边缘的逻辑像素距离。它会影响可用绘制区域的大小。滚动条轨道会占用此空间。不能为空,默认为 0。

min_thumb_length

当可滚动的总范围较大、当前可见视口较小且视口未过度滚动时,滚动条滑块可缩小到的最小优选尺寸。

interactive

滚动条是否应具有交互性并响应在滑块上的拖动或在轨道区域的点击。当为 False 时,滚动条不会响应手势或悬停事件,并且可以点击穿透。当为 None 时,默认为 True,但在 Android 上,当为 None 时,默认为 False

示例

page.theme = ft.Theme(
scrollbar_theme=ft.ScrollbarTheme(
track_color={
ft.MaterialState.HOVERED: ft.Colors.AMBER,
ft.MaterialState.DEFAULT: ft.Colors.TRANSPARENT,
},
track_visibility=True,
track_border_color=ft.Colors.BLUE,
thumb_visibility=True,
thumb_color={
ft.MaterialState.HOVERED: ft.Colors.RED,
ft.MaterialState.DEFAULT: ft.Colors.GREY_300,
},
thickness=30,
radius=15,
main_axis_margin=5,
cross_axis_margin=10,
)
)