如何在flutter中给DraggableScrollableSheet确切的高度值?

时间:2019-12-29 16:22:47

标签: flutter widget draggable

我的颤抖简单grep,它的参数像DraggableScrollableSheetinitialChieldSizeminChildSize,但它们在父母身高的作用上很有价值。

但是我有固定的高度元素,并希望将准确的高度值赋予maxChildSize

如何为initialChildSize中的上述参数赋予确切的值?

1 个答案:

答案 0 :(得分:2)

尝试获取MediaQuery的大小或任何其他自定义父窗口小部件的大小(使用布局生成器自定义大小)。然后,将DraggableScrollableSheet的初始和最小子大小设置为 / size.height。这样,您将获得该特定高度的分数。它对我有用:)

这里是一个例子:

return LayoutBuilder(
  builder: (context, safeAreaSize) {
    return Stack(
      children: [
        Placeholder(),
        Positioned.fill(
          child: DraggableScrollableSheet(
            initialChildSize: 40 / safeAreaSize.maxHeight,
            minChildSize: 40 / safeAreaSize.maxHeight,
            maxChildSize: 1.0,
            expand: false,
            builder: (context, scrollController) {
              return SingleChildScrollView(
                controller: scrollController,
                child: Container(height: 40).backgroundColor(Colors.blue),
              );
            },
          ),
        ),
      ],
    );
  },
);

如果您想查看它的实际使用方法,请转到: https://dartpad.dev/d89a5411bb9785edfb630f6082b71d00

编辑:我在pub.dev上找到了一个名为“ sliding_sheet”的软件包,它很整洁。它可以根据内容自动调整图纸的大小,并且可以在屏幕上想要的位置对齐。我给“快照”的第一个赋予与上面代码相​​同的值(这是SlidiingSheet构造函数的一个参数)。希望您会发现它有用!