如何在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。这是一个提供很多东西的包,其中包括一个非常灵活的小吃店。这是我能够想出的动画向上/向下而不是淡入/淡出。

Snackbar demo

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: () {},);
        },);
  }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...