flutter - 有没有更简单的方法可以在提交按钮后添加加载动画?
问题描述
我在 UI 中创建了一个提交按钮。点击提交按钮后,我想放置圆形进度指示器,最后按钮显示完成。有没有更简单的方法来做到这一点?我附上了代码和输出图像。
class _AnimatedButtonState extends State<AnimatedButton>
with TickerProviderStateMixin {
AnimationController loadcontroller;
AnimationController _controller;
ButtonState _currentState;
@override
void initState(){
_currentState = ButtonState.SHOW_ONLY_TEXT;
_controller = AnimationController(vsync: this);
loadcontroller = AnimationController(
vsync: this,
duration: const Duration(seconds: 2),
)..addListener(() {
setState(() {});
});
loadcontroller.repeat(reverse: false);
super.initState();
}
void dispose(){
_controller.dispose();
loadcontroller.dispose();
super.dispose();
}
Widget build(BuildContext context) {
return Material(
//border: Border.all(color: (_currentState == ButtonState.SHOW_ONLY_ICON) ?
widget.buttonStyle.secondaryColor : Colors.transparent ) ,
borderRadius: BorderRadius.all(Radius.circular(widget.buttonStyle.borderRadius)) ,
elevation: widget.buttonStyle.elevation,
child: InkWell(
onTap: (){
loadcontroller.forward();
//setState(() {
_currentState = ButtonState.SHOW_ONLY_ICON;
return Scaffold(
body: Padding(
padding: const EdgeInsets.all(20.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
CircularProgressIndicator(
value: loadcontroller.value,
semanticsLabel: 'Linear progress indicator',
),
],
),
),
);
//});
},
解决方案
有一个非常有用的包:flutter_progress_button
推荐阅读
- c++ - 为什么 QtCreator 和 MSVC 使用 QT VS 工具生成的代码不同?
- ssl - 如何将自签名证书与 Web 套接字一起使用
- git - 此存储库已超过其数据配额。负责 LFS 带宽的帐户应购买更多数据包以恢复访问
- python - 了解 PyTorch 的实现
- python - async - 一个任务调用多个并发任务
- typescript - 如何正确键入调用另一个函数并传递可变数量参数的函数
- java - 向我的 jframe 添加图像最终破坏了下一个按钮
- clojure - 为什么映射的 println 只在最后一个 let 块中起作用?
- google-cloud-platform - 在查询中包括字段,但不是聚合的
- java - 如何在列表中添加与java中地图键匹配的元素