如何解决如何在flutter中实现浮动的Snackbar动画?
我正在尝试在浮动 Snackbar 中实现动画,它从屏幕底部出现并向上移动,就像 Gmail 应用程序中的动画一样,滑动邮件以获得 achive。有人可以发个例子吗?
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(
'Product removed from cart',),action: SnackBarAction(
label: 'Undo',onPressed: () {
//
}),duration: Duration(seconds: 3),behavior: SnackBarBehavior.floating,margin: EdgeInsets.only(bottom: 30,left: 10,right: 10),animation: // **Answer Please**
}
解决方法
默认的 Flutter Snackbar 并没有提供太多的自定义方式。您可以使用的一个库称为 getx。这是一个提供很多东西的包,其中包括一个非常灵活的小吃店。这是我能够想出的动画向上/向下而不是淡入/淡出。
class SnackbarExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final ColorScheme colorScheme = theme.colorScheme;
final bool isThemeDark = theme.brightness == Brightness.dark;
final Color themeBackgroundColor = isThemeDark
? colorScheme.onSurface
: Color.alphaBlend(colorScheme.onSurface.withOpacity(0.80),colorScheme.surface);
return Center(
child: TextButton(
child: Text(
'Show snackbar',style: TextStyle(fontSize: 20),),onPressed: () {
Get.snackbar(
'','',snackPosition: SnackPosition.BOTTOM,snackStyle: SnackStyle.FLOATING,messageText: Text(
'Product removed from cart',style: TextStyle(
color: Colors.white,fontSize: 15,fontWeight: FontWeight.w400,titleText: Container(),margin: const EdgeInsets.only(bottom: kBottomNavigationBarHeight,left: 8,right: 8),padding: const EdgeInsets.only(bottom: 4,left: 16,right: 16),borderRadius: 4,backgroundColor: themeBackgroundColor,colorText: Theme.of(context).colorScheme.surface,mainButton: TextButton(
child: Text('Undo'),onPressed: () {},);
},);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。