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


9

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

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

像这样:

在此处输入图片说明

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

有任何想法吗 ?:)


您是否尝试过我给您的解决方案?希望对您有所帮助。
Pablo Barrera,

@PabloBarrera结束了,重新记录了DraggableScrollableSheet自己的行为,但我会接受您的回答;)
ThéoChampion

Answers:


5

您可以使用实现此目标DraggableScrollableSheet

这是一个如何使用它的快速示例:

@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'),
              ),
            ),
          ),
        ),
      ],
    ),
  );
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.