您好,我正在展示一个带有按钮的 SnackBar。当用户按下按钮时,它应该突出显示该按钮。因此,我让它在按下特定按钮的地方显示一个新的 SnackBar。 但是,每当用户点击按钮时,新的 SnackBar 就会出现这种淡入淡出的动画效果,这让它看起来像是一个故障。
那么如何在 SnackBar 中禁用淡入淡出动画呢?
谢谢
Scaffold.of(context).showSnackBar(SnackBar(
elevation: 0.0,
duration: Duration(seconds: 3),
shape: RoundedRectangleBorder(
side: BorderSide.none, borderRadius: BorderRadius.circular(20.0)),
behavior: SnackBarBehavior.floating,
backgroundColor: Colors.grey.withOpacity(0.5),
content: _getButtons(),
));
然后当单击按钮时,它会删除 SnackBar:
Scaffold.of(context).removeCurrentSnackBar();
然后使用新的按钮设置再次显示上面的 SnackBar。
实际上这些代码可能对问题没有帮助。重要的是我们如何访问 SnackBar 的动画并禁用它?
最佳答案
尝试创建animationController
并将其值设置为 zero
,并将此 Controller 附加到 animation
Snackbar
的 Prop
late AnimationController controller;
@override
void initState() {
super.initState();
controller = AnimationController(
duration: const Duration(seconds: 0),
vsync: this,
);
}
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
behavior: SnackBarBehavior.floating,
animation: controller,
content: const Text("Details Updated Successfully"),
duration: const Duration(seconds: 3),
action: SnackBarAction(
label: 'Undo',
onPressed: () {
controller.reverse();
}
)
));
https://stackoverflow.com/questions/61380744/
相关文章:
ios - 如何在 SwiftUI 中更新 TextField 的值?
google-app-engine - 将 AppEngine 中的传入请求路由到不同版本
vba - 在 64 位 VBA 中使用 TaskDialogIndirect
reactjs - Ant Design 如何处理 Form.List 从底层数据结构访问值?
swiftui - 如何在 SwiftUI 中使 UIViewRepresentable 可聚焦在
perl - 使用 Perl 连接到 AWS Managed Cassandra