BorderRadius.all(Radius.circular(4)) 和 BorderRadius.circular(4) 有什么区别

问题描述 投票:0回答:2

这两个实现都做同样的事情,即用

child
BorderRadis
进行舍入:

ClipRRect(
 borderRadius: BorderRadius.circular(4),
 child: /*...*/
 )


ClipRRect(
 borderRadius: const BorderRadius.all(Radius.circular(4)),
 child: /*...*/
 )

它们之间有重大区别吗?我应该使用什么?

flutter dart
2个回答
0
投票

没有区别,它们是相同的。

BorderRadius.circular()
只是一个方便的构造函数。

.circular()
的实施需要
.all()
Radius.circular()
:

BorderRadius.circular(double radius) : this.all(
  Radius.circular(radius),
);

0
投票

有区别,但在于性能。

视觉上没有区别。然而就像你的代码所示:

borderRadius: const BorderRadius.all(Radius.circular(4))

this 有 const,可以提高重建小部件时的性能。

BorderRadius.circular(4)
是一个工厂构造函数,每次调用都会返回一个新实例。

我推荐第一种方法

© www.soinside.com 2019 - 2024. All rights reserved.