一個 Flutter 套件,可讓底部面板被拖曳開啟並滾動,模擬 Google 地圖應用中的「附近地點」面板行為。它提供流暢的拖曳展開互動,並支援在展開的面板內滾動內容。非常適合以緊湊且互動的方式顯示詳細資訊或清單。此套件相容於 Android、iOS、Web、macOS、Windows 與 Linux 平台。
適用情境
在地圖應用中顯示位置詳細資訊
顯示附近景點列表
建立可擴展的資訊面板
實現可摺疊的內容部分
增強使用者與可拖曳底部面板的互動體驗
主要特色
拖曳展開手勢支援
內建的可捲動內容區域
跨平台相容性
平滑的動畫過渡
可自訂的面板高度與行為
適用於所有螢幕尺寸的響應式設計
適合對象
地圖和基於位置的應用程式
內容豐富的底部彈出層
需要可展開面板的使用者介面
尋求原生類似底層表單體驗的開發者
需要直覺式手勢導航的應用程式
使用建議
可能需要額外的樣式設定以實現自訂視覺效果
處理極大資料集時的效能影響
複雜動畫的自訂選項有限
需要仔細處理嵌套的滾動視圖
不適合用於簡單的靜態內容顯示
原始 README
以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。
scrollable_panel
drag to expand and then can scroll contents.
similar "Nearby spots" panel on google map app.
https://pub.dev/packages/scrollable_panel
Panel Properties
Properties
Data Type
Description
builder
ScrollableWidgetBuilder
builder for inner panel view. ScrollableWidgetBuilder type define in draggable_scrollable_sheet.dart. provide PanelScrollController that extends ScrollController.
controller
PanelController
control panel from some interaction like button.
defaultPanelState
PanelState
set default panel state. (default value PanelState.open)
defaultPanelSize
double
set default panel height factor (default value 0.25)
minPanelSize
double
set minimum panel height factor. (default value 0)
maxPanelSize
double
set maximum panel height factor. (default value 1.0)
onOpen
VoidCallback
if non-null, this callback is called when panel state become open
onClose
VoidCallback
if non-null, this callback is called when panel state become close
onExpand
VoidCallback
if non-null, this callback is called when panel state become expand