Flutter SnackBar 的高度

Posted

技术标签:

【中文标题】Flutter SnackBar 的高度【英文标题】:Flutter SnackBar's height 【发布时间】:2021-11-29 00:04:39 【问题描述】:

我的目标

我想以 ListTile 作为内容显示 Flutter 的 default SnackBar。

问题

由于某种原因,Snackbar 几乎比我想要的高三倍,并且似乎 Snackbar 中没有设置高度的参数。

我检查了类似的questions,没有找到一个有效的例子。

小吃店

void showSuccessSnackBar(BuildContext context, String message) 
  Scaffold.of(context).showSnackBar(
    SnackBar(
      content: Container(
        child: ListTile(
            leading: _successIcon(),
            dense: true,
            title: Text(
              message,
              textAlign: TextAlign.center,
              style: TextStyle(
                color: HATheme.HOPAUT_PINK,
                fontWeight: FontWeight.bold
              ),
            )),
      ),
      behavior: SnackBarBehavior.floating,
      duration: Duration(seconds: 3),
      backgroundColor: Colors.white));


Widget _successIcon() 
  return Image.asset(
    'assets/icons/success.png',
    // resizing this doesn't help
    height: 30,
    width: 30,
  );

我想要的尺寸:

实际尺寸:

【问题讨论】:

请添加您的代码 忘记了最重要的(facepalm),再检查一遍 【参考方案1】:

您可以为该容器添加高度,您的问题将得到解决

 Container(
    height: 10
    child: ListTile(
        leading: _successIcon(),
        dense: true,
        title: Text(
          message,
          textAlign: TextAlign.center,
          style: TextStyle(
            color: HATheme.HOPAUT_PINK,
            fontWeight: FontWeight.bold
          ),
        )

【讨论】:

尝试了很多解决方案,但没有考虑到这一点。谢谢,它有效。

以上是关于Flutter SnackBar 的高度的主要内容,如果未能解决你的问题,请参考以下文章

使用 SnackBar 实例再次显示

从右到左 SnackBar

角材质覆盖 SnackBar 组件的默认样式

flutter SnackBar 底部消息提示

Flutter Widgets 之 SnackBar

如何在 Flutter 中显示 SnackBar?