跳到主要内容

CupertinoPicker

一个 iOS 风格的选择器。 要打开此控件,只需调用page.open()辅助方法。

示例

Live example

基本示例

import flet as ft


def main(page):
page.horizontal_alignment = ft.CrossAxisAlignment.CENTER

selected_fruit_ref = ft.Ref[ft.Text]()
fruits = [
"Apple",
"Mango",
"Banana",
"Orange",
"Pineapple",
"Strawberry",
]

def handle_picker_change(e):
selected_fruit_ref.current.value = fruits[int(e.data)]
page.update()

cupertino_picker = ft.CupertinoPicker(
selected_index=3,
magnification=1.22,
squeeze=1.2,
use_magnifier=True,
on_change=handle_picker_change,
controls=[ft.Text(value=f) for f in fruits],
)

page.add(
ft.Row(
tight=True,
controls=[
ft.Text("Selected Fruit:", size=23),
ft.TextButton(
content=ft.Text(value=fruits[3], ref=selected_fruit_ref, size=23),
style=ft.ButtonStyle(color=ft.colors.BLUE),
on_click=lambda e: page.open(
ft.CupertinoBottomSheet(
cupertino_picker,
height=216,
padding=ft.padding.only(top=6),
)
),
),
],
),
)


ft.app(target=main)

属性

bgcolor

选择器的背景颜色

controls

表示此选择器中项目的控件列表。

diameter_ratio

此选择器的高度与模拟圆柱直径的相对比率。

较小的值会在可滚动的轮子中创建更明显的曲率。

item_extent

所有子项的统一高度。默认为 32

looping

如果为 True,则轮子上的子项可以循环滚动。默认为 False

magnification

如果使用放大镜,其放大率。

如果该值大于 1.0 ,中心的项目将按该比率放大,并且它也将被渲染为平面,不像列表的其余部分那样是圆柱形的。 如果放大率小于 1.0 ,项目将缩小。

默认值为 1.0 - 正常。

off_axis_fraction

轮子水平偏离中心的程度,作为其宽度的比例。

selected_index

controls 列表中所选项目的索引(从 0 开始)。

squeeze

轮子上子项的角度紧凑度。

use_magnifier

是否使用轮子中心项的放大镜。

事件

on_change

选择更改时触发。