- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试制作一个类,如果您单击一个按钮,它会变大,然后再次单击会缩小。但是动画不工作
这是我的
import 'package:flutter/material.dart';
import 'package:flutter_button_collection/flutter_button_collection.dart';
class AnimatedShadowButton extends StatefulWidget {
final double height;
final double width;
final double finalHeight;
final double finalWidth;
const AnimatedShadowButton(
{Key key, this.height, this.width, this.finalHeight, this.finalWidth})
: assert(height < finalHeight),
assert(width < finalWidth),
super(key: key);
@override
_AnimatedShadowButtonState createState() => _AnimatedShadowButtonState();
}
class _AnimatedShadowButtonState extends State<AnimatedShadowButton> {
double buttonHeight;
double buttonWidth;
void aniButo() {
setState(() {
buttonHeight = widget.height <= widget.finalHeight
? widget.finalHeight
: widget.height;
buttonWidth =
widget.width <= widget.finalWidth ? widget.finalWidth : widget.width;
});
}
Widget build(BuildContext context) {
return AnimatedContainer(
duration: Duration(milliseconds: 300),
curve: Curves.easeInBack,
width: buttonWidth,
height: buttonHeight,
child: AVLButton(
onPressed: () {
aniButo();
},
child: Text("This is a text"),
elevation: 30.0,
),
);
}
}
如果我给 buttonHeight
和 buttonWidth
值,并且一切都是静态的,它就可以工作,但我希望能够这样使用它
AnimatedShadowButton(
height: 60.0,
width: 100.0,
finalHeight: 90.0,
finalWidth: 150.0,
),
最佳答案
我认为您必须更改aniButo
方法。像这样:
void aniButo() {
setState(() {
buttonHeight = buttonHeight == widget.height
? widget.finalHeight
: widget.height;
buttonWidth = buttonWidth == widget.width
? widget.finalWidth
: widget.width;
});
}
UPD
在 _AnimatedShadowButtonState
中添加 initState
方法
@override
void initState() {
buttonHeight = widget.height
buttonWidth = widget.width
super.initState();
}
关于flutter - AnimatedContainer 按钮类未设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57490487/
Example 使用 CupertinoPicker,我希望它使用 AnimatedContainer 以动画形式显示在文本输入下方的 View 中,但是当它变得可见时,我收到溢出警告。据我所知,您无
我正在尝试制作一个类,如果您单击一个按钮,它会变大,然后再次单击会缩小。但是动画不工作 这是我的 import 'package:flutter/material.dart'; import 'pac
我想为列表中两个项目之间的间隙设置动画。我想过使用高度最初为零的 AminatedContainer,但我不熟悉如何进行这项工作。我现在的代码是: new AnimatedContainer(
基本上我想在 2 个值之间设置 AnimatedContainer 的高度动画。但这就是问题所在。当我的状态为 1 时,我知道高度,因此我可以设置动画,但是当我的状态为 0 时,我希望动画容器扩展到可
因此,我正在做一些事情,我想列出这些“胶囊”(圆角矩形容器)的列表。当用户点击其中任意一个时,它将扩展到全屏,而其余的则停留在较低的层上,并且不执行任何操作。 我正在使用AnimatedContain
我找不到两者之间的区别,以及为什么您想要使用其中一个。 在我看来,他们俩几乎做了同样的事情。 为什么以及在哪里会使用其中一个? 最佳答案 AnimatedContainer 用于快速完成任务且用途简单
假设我们有 Column 的 3 个 child : Flexible( flex:1, child: Container( color: Colors.red, ),
我有一个带有子控件的简单AnimatedWidget。 AnimatedContainer( duration: Duration(milliseconds: 2000), curve:
Expanded( flex: 1, child: Padding( padding:
Expanded( flex: 1, child: Padding( padding:
我希望为 AnimatedContainer 和 ClipPath 在 y 轴上移动设置动画。 这是我当前的代码: class Clip extends StatelessWidget { fin
我希望使用 transform 为容器的比例设置动画。 AnimatedContainer 的属性(property);但是,比例尺并没有过渡,而是直接从头跳到尾。 代码片段: var contain
我是一名优秀的程序员,十分优秀!