带有文本上方和下方图标的按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有文本上方和下方图标的按钮相关的知识,希望对你有一定的参考价值。

我正在尝试使小部件实现以下效果:

Image

它是一个按钮,在图标上方或下方显示中间的图标和文本,具体取决于图标是否反转。

我做了以下操作,将图标和文本添加到按钮:

 child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              isInverted
                  ? Icon(Icons.access_alarm)
                  : Text("Test")
              isInverted
                  ? Padding(padding: EdgeInsets.only(top: 20))
                  : Padding(padding: EdgeInsets.only(top: 20)),
              isInverted
                  ? Text("Test")
                  : Icon(Icons.access_alarm),
              isInverted
                  ? Padding(padding: EdgeInsets.only(top: 0))
                  : Padding(padding: EdgeInsets.only(bottom: 20)),
            ],
          ),

问题是按钮不对称。

如果按钮没有倒置但是如果图标不居中,它可以正常工作。

也许有一个解决方案没有使用任何填充。

答案

试试这种方式

child: RaisedButton(
          shape: Border.all(width: 2.0),
          onPressed: _onPressed,
          child: Stack(
            children: <Widget>[
              Align(
                alignment: Alignment.center,
                child: Icon(Icons.home),
              ),
              Align(
                alignment:
                    isInverted ? Alignment.bottomCenter : Alignment.topCenter,
                child: Text("home"),
              )
            ],
          ),
        )

@ishaan也建议

另一答案

试试这个:

Stack(
  children: <Widget>[
    Padding(
      padding: const EdgeInsets.all(18.0),
      child: Icon(Icons.access_alarm),
    ),
    Positioned(
      child: Text("Test"),
      left: 15,
      bottom: isInverted?0:null,
      top: !isInverted?0:null,
    )
  ],
),

enter image description here

以上是关于带有文本上方和下方图标的按钮的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - 如何在图像下方使用带有图像和文本/图标的容器小部件

带有图像和动态文本“下方”的 UITool 栏按钮

带有左图标和文本的按钮完全对齐

想要一个受其上方和下方内容影响的 UIVisualEffectView 吗?

带有文本和图标的圆形按钮

如何在 QStandardItem 图标上方显示文本?