4Manuals

  • PDF Cloud HOME

BackdropFilter如何应用它的过滤器? Download

    从文件初始化类的最佳方法(异步)? 此声明在dart中的Future类中意味着什么:FutureOr <R>函数(动态)onValue 从网络加载图像时,“接收到完整的报头之前关闭连接 Flutter:Java使用或覆盖已弃用的API Flutter-如何从认证错误链接获取API响应 Flutter网站网址导航 Dart Linter:在Lambda之外的所有地方强制执行类型注释 如何使用带有自定义入口点的FlutterFragment在我的Android应用中嵌入Flutter布局? 如何设置容器高度以适合屏幕 如何使用“ CupertinoFullscreenDialogTransition”?

对于Flutter中的BackdropFilter小部件的工作方式,我感到非常困惑。 凭直觉,我希望该小部件仅将过滤器应用于其子级的约束,但这似乎并非如此。

例如:

Column(
      children: [
        Text('Hello world 1'),
        BackdropFilter(filter: ImageFilter.blur(sigmaX: 5, sigmaY: 5), 
            child: Text('Hello world 2'),
        ),
        Text('Hello world 3'),
      ],
    )

该代码的结果如下:

enter image description here

孩子不受影响时,第一个文本模糊。

另外,如果我要尝试这样的事情:

child: Column(
    children: [
      Text('Hello world 0'),
      Container(
        child: Column(
          children: [
            Text('Hello world 1'),
            BackdropFilter(filter: ImageFilter.blur(sigmaX: 5, sigmaY: 5), 
               child: Text('Hello world 2'),
            ),
            Text('Hello world 3'),
          ],
        ),
      ),
    ],
  )

结果将是:

enter image description here

这里的机制到底是什么?筛选器是否仅适用于BackdropFilter的祖先以及在其之前声明的同级兄弟,而不适用于其子级?孩子的目的是什么?

PS

我知道在树中的某个位置添加ClipRect会停止将过滤器应用到其任何祖先或先前声明的同级兄弟中,

Column(
    children: [
      Text('Hello world 0'),
      ClipRect(
        child: Container(
          child: Column(
            children: [
              Text('Hello world 1'),
              BackdropFilter(filter: ImageFilter.blur(sigmaX: 5, sigmaY: 5), child: Text('Hello world 2')),
              Text('Hello world 3'),
            ],
          ),
        ),
      ),
    ],
  )

这将导致:

enter image description here

我的问题仍然有效。

1 个答案:

答案 0 :(得分:1)

颤振BackdropFilter应用于它下面的子级(例如,堆栈中的子级),而不是子级。这样BackdropFilter可以应用于多个或部分小部件。



Similar searches
    Unity-在Android 7或更高版本中未显示默认启动器对话框 addEventListener没有响应以在反应中实现芯片 如何显示穆德尔的统计数据? 我必须在Excel中将UTC时间转换为IST ASPNET Core 3.1 RedirectResult在生产中不再起作用