如何在Flutter中实现背景模糊的Bottom Modal Sheet?

sti*_*ing 5 dart flutter flutter-layout flutter-design

我正在做一个项目,为此我想要一张图像背景模糊的底页。为此,我实现了这段代码,该代码工作正常,但有一个问题。


  Widget build(BuildContext context) {
    return Container(
      height: MediaQuery.of(context).size.height * 0.33,
      child: Stack(
        overflow: Overflow.visible,
        fit: StackFit.expand,
        children: [
          Container(
            height: MediaQuery.of(context).size.height * 0.25,
            decoration: new BoxDecoration(
                image: new DecorationImage(
              image: new AssetImage("assets/images/bookshelf.jpg"),
              fit: BoxFit.cover,
            )),
          ),
          Positioned(
            width: MediaQuery.of(context).size.width,
            height: MediaQuery.of(context).size.height * 0.25,
            child: BackdropFilter(
              filter: ImageFilter.blur(sigmaX: 3, sigmaY: 3),
              child: Container(color: Colors.white.withOpacity(0)),
            ),
          ),
        ],
      ),
    );
  }
Run Code Online (Sandbox Code Playgroud)

输出是这样的:在此输入图像描述 它使整个屏幕模糊,但我想仅在模态表中模糊。我的问题是什么?我是颤振新手,所以对此了解不多。请在这件事上给予我帮助。

小智 2

这是您的解决方案,

 showModalBottomSheet(
              context: context,
              clipBehavior: Clip.antiAlias,
              builder: (context){
                return Container(
                  decoration: BoxDecoration(
                    image: DecorationImage(
                      image: AssetImage("assets/images/bookshelf.jpg"),
                    ),
                  ),
                  child: BackdropFilter(
                    filter: ImageFilter.blur(sigmaX: 3, sigmaY: 3),
                    child: Center(
                      child: Text('welcome'),
                    ),
                  ),
                );
              }
          );
Run Code Online (Sandbox Code Playgroud)