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

标签 flutter

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

我要实现的目标是,让面板处理拖动操作以进行打开和关闭,而不会干扰嵌套的listview。面板一旦打开, ListView 就可以滚动,如果 ListView 已经位于顶部而向下滚动,则面板将处理该手势并关闭。

像这样:

enter image description here

我试图根据面板的位置在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/

相关文章:

android - 是否可以在 Flutter 中完全处理音量增大/减小产生的事件?

android - 包含对 AndroidX 和旧支持库的引用

flutter - SliverAppBar 和 TabBar

flutter - 如何删除 Flutter 中的调试横幅?

选择 CameraDevice.rear 时,Flutter ImagePicker 在自拍模式下打开

flutter - Dart/flutter 。子类无法访问父 setter 功能

firebase - 在 flutter 中如何将列表保存到 firebase

sqlite - 在关闭之前保存对话框内容

Flutter (web) - 如何重新加载 Flutter PWA

flutter - ChoiceChip如何实现透明背景?