繁体   English   中英

如何在Flutter中有选择地模糊子堆栈中的小部件?

[英]How to selectively blur widgets in a child Stack in Flutter?

我看了Flutter Issues,这就是我要的东西: https : //github.com/flutter/flutter/issues/13489

我有2个圆形的小部件。 它们排列成一个堆栈,并像维恩图一样放置,从而它们彼此部分重叠:

final vennDiagram = Stack(
    children: [
        leftCircle,
        rightCircle,
    ],
);

我想给它们添加一个很好的模糊“阴影”,所以我制作了它们的副本,并将该副本放在另一个Stack中,然后应用模糊(请参阅参考资料 )。 我现在有:

Stack(
    children: [
        vennDiagramShadow, // essentially an offset copy of `vennDiagram`
        blur, // BackdropFilter
        vennDiagram,
    ],
)

这看起来很棒-我的Venn图具有清晰的边缘,并且背景中有模糊的“阴影”。

但是,现在让我说,我希望每个小部件都负责其自己的“模糊阴影”效果-例如,我希望第一个圆圈的阴影更加模糊(例如,用户轻敲维恩图的一侧)。 我现在重构为:

final vennDiagram = Stack(
    children: [
        Stack(children: [leftCircleShadow, extraBlur, leftCircle]),
        Stack(children: [rightCircleShadow, blur, rightCircle]),
    ],
);

这会导致rightCircle下方的所有内容都blur ,因为在Stack中, blur 覆盖leftCircle。 实际上,我只希望rightCircleShadowblur影响。

如何仅在“本地”堆栈中选择性模糊小部件? 而不是父堆栈?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM