所有元件

MotionSwipe

滑動顯示操作按鈕、並可選擇滑動刪除的清單列。

WebReact Native手勢

動手試試

正在準備範例…

最簡用法

Row.jsx
<MotionSwipe
  endActions={<button onClick={() => archive(id)}>Archive</button>}
  dismiss="end"
  onDismiss={() => remove(id)}
>
  <MessagePreview />
</MotionSwipe>;

它替你處理的事

  • 列會跟著水平拖曳,超過操作按鈕時有阻力,並依你放開時的速度停穩。
  • 設定 dismiss 後,長距離滑動或快速甩出會讓列滑出、收起高度,然後呼叫 onDismiss(side)。
  • 垂直捲動照常可用,同一時間只有一列保持展開。
  • 點擊已展開的列會將它收起,鍵盤焦點移到操作按鈕上時會將它顯示出來。

適用情境

  • 在收件匣中封存或刪除。
  • 置頂一段對話。
  • 從清單中移除一個項目。

Props

Prop型別預設值說明
childrenReactNode列的內容。
startActionsReactNode把列往結尾方向拖曳時,在行內開頭一側顯示。
endActionsReactNode把列往開頭方向拖曳時,在行內結尾一側顯示。
dismiss'start' | 'end' | 'both'長距離滑動或快速甩出會移除該列的方向。
onDismiss(side) => void列滑出並收起後執行;請在這裡把該項目從資料中移除。
onOpenChange(side | null) => void帶著展開的那一側執行,列收起時為 null。
disabledbooleanfalse關閉滑動。
contentClassNamestring列內容的 class;contentStyle 設定其行內樣式。
transitionTransitionspring時間曲線 { duration, easing } 或彈簧 { tempo: 'spring', spring }。彈簧被中斷時會保留動量。

其他 props 會傳給渲染的元素,所以 className、style 與事件處理函式照常可用。

Web 與 React Native

往行內結尾方向拖曳時出現 startActions,往開頭方向拖曳時出現 endActions。以 contentClassName 為列的內容設定背景。

React Native 使用相同的 props 與手勢。

用到它的範例

搜尋

輸入關鍵字搜尋文件。