You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现上下两端均可拖拽的DraggableScrollableSheet交互效果

上下双向可拉伸Draggable Sheet实现需求

我想知道是否可以创建一个上下两端均可拉伸的draggable sheet。当我从底部向上拖拽该sheet到其总高度的约75%位置时,会有另一个sheet从顶部开始向下延伸,直至两个sheet相互接触。

当前基础实现代码示例:

DraggableScrollableSheet(
    builder: (BuildContext context, ScrollController scrollController) {
        return Container(
            color: Colors.blue[100],
            child: ListView.builder(
                controller: scrollController,
                itemCount: 25,
                itemBuilder: (BuildContext context, int index) {
                    return ListTile(title: Text('Item $index'));
                },
            ),
        );
    },

我观察到ScrollController包含ScrollPosition属性,我认为可以借助该属性触发从上至下的draggable sheet。我当前的实现计划是:创建一个监听器,通过ScrollController类的notifyListeners方法将其添加到ScrollController上,当触发条件满足时,就将另一个draggable sheet添加到栈的顶层。

编辑1: 该功能可以轻松实现,你仅需要用到3个widget:AnimatedContainer、GestureDetector和Transform。

内容的提问来源于stack exchange,提问作者M812_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 04:39:04