滑动面板内的嵌套ScrollView小部件

Thé*_*ion 9 flutter

我有一个面板小部件,可以将其垂直拖动到屏幕底部或从屏幕底部垂直拖出。在该面板小部件中,有一个ListView可滚动的。

我要实现的目标是让面板处理拖动操作以进行打开和关闭,而不会干扰嵌套的listview。面板打开后,列表视图将变为可滚动状态;如果列表视图已经位于顶部,则将其向下滚动,则该面板将改为处理手势并关闭。

像这样:

在此处输入图片说明

我试图根据面板的位置在ListView上启用/禁用滚动物理,但是事实证明这种方式是不可能的。

有任何想法吗 ?:)

Pab*_*era 5

You can achieve that with DraggableScrollableSheet.

Here is a quick example of how you can use it:

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: Stack(
      children: <Widget>[
        Center(child: Text('Some content')),
        DraggableScrollableSheet(
          minChildSize: 0.2,
          initialChildSize: 0.2,
          builder: (context, scrollController) => Container(
            color: Colors.lightBlueAccent,
            child: ListView.builder(
              controller: scrollController,
              itemCount: 20,
              itemBuilder: (context, index) => SizedBox(
                height: 200,
                child: Text('Item $index'),
              ),
            ),
          ),
        ),
      ],
    ),
  );
}
Run Code Online (Sandbox Code Playgroud)