问题描述
我正在尝试在浮动 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: () {},);
},);
}
}