OneScript

presentationDetents

设置 sheet 可停靠的高度及当前高度。

presentationDetents(detents) 作用在 sheet 内容中的视图上,设置 sheet 可以停靠的高度。用户可以拖动顶部指示条在这些高度之间切换。

import { List, Modifier, Text } from "onescript/views"

<List modifier={Modifier.presentationDetents(["medium", "large", { height: 200 }])}>
  <Text>内容</Text>
</List>
值高度
"medium"约半屏。
"large"完整高度,为默认值。
{ fraction: number }屏幕高度的比例,取值范围 (0, 1]。
{ height: number }固定高度,单位为 pt。

当前高度

传入第二个参数可以读取和控制 sheet 当前停在哪个高度。selection 必须是 detents 中的一项;用户拖动 sheet 后,OneScript 调用 onSelectionChange 并传入新的高度,你需要把它存回状态。脚本修改 selection 时 sheet 会动画切换到对应高度。

import { Button, List, Modifier, type PresentationDetent, useState } from "onescript/views"

function Panel() {
  const [detent, setDetent] = useState<PresentationDetent>("medium")

  return (
    <List modifier={Modifier.presentationDetents(["medium", "large"], {
      selection: detent,
      onSelectionChange: setDetent,
    })}>
      <Button action={() => setDetent("large")}>展开</Button>
    </List>
  )
}
参数类型说明
selectionPresentationDetent当前高度,必须是 detents 中的一项。
onSelectionChange(detent: PresentationDetent) => void用户拖动改变高度时调用。

How is this guide?

最后更新于

本页目录