我有一个TextField,当我聚焦到输入边框时,它会直接改变。但我想让它更光滑。我该怎么做?
Container(decoration: isFocused ? focusedBorder : blurBorder) //isFocused triggers when i focus to input.
我的边界:
final focusedBorder = BoxDecoration(
borderRadius: BorderRadius.circular(8),
gradient: LinearGradient(
begin: Alignment.centerLeft,
end: Alignment.centerRight,
colors: [
Color.fromARGB(255, 141, 56, 211),
Color.fromARGB(255, 156, 90, 209),
Color.fromARGB(255, 93, 53, 213),
],
stops: [
0.0,
0.5,
0.7
]));
final blurBorder = BoxDecoration(
borderRadius: BorderRadius.circular(8),
border:
Border.all(width: 1.5, color: Color.fromARGB(255, 238, 241, 246)));
3条答案
按热度按时间laawzig21#
使用
AnimatedContainer
代替Container
。然后,您可以更改容器内的任何属性,它将自动设置更改的动画。您甚至可以设置一个duration
为相同的41ik7eoe2#
这里有一个关于如何做到这一点的例子,做同样的事情,但使用AnimatedContainer和duration属性将帮助您为动画设置特定的持续时间:
vsikbqxv3#
Border和BoxDecoration的颜色好像Opacity不起作用,可以这样使用AnimatedBuilder和withOpacity