我有一个面板小部件,可以从屏幕底部垂直将其垂直拖入和拖出。在该面板小部件中,有一个可滚动的ListView
。
我要实现的目标是,让面板处理拖动操作以进行打开和关闭,而不会干扰嵌套的listview。面板一旦打开, ListView 就可以滚动,如果 ListView 已经位于顶部而向下滚动,则面板将处理该手势并关闭。
像这样:
我试图根据面板的位置在ListView上启用/禁用滚动物理,但事实证明这种方式是不可能的。
有任何想法吗 ? :)
最佳答案
您可以使用 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'),
),
),
),
),
],
),
);
}
关于flutter - 滑动面板内的嵌套ScrollView小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58511779/