无法在颤动中更改按钮的高度

Posted

技术标签:

【中文标题】无法在颤动中更改按钮的高度【英文标题】:Can't change the height of a button in flutter 【发布时间】:2020-07-25 09:57:40 【问题描述】:

我是新来的颤振。我正在尝试在“AppBar”中插入一个带有文本的简单“包含按钮”。 (例如材料设计“包含按钮”here)

问题是,无论我在构造函数中插入什么高度,按钮仍然会填满 AppBar 的整个高度。

我可以像在下面的示例中那样通过设置填充明显地解决问题,但让我感到沮丧的是,我不明白为什么我不能更改按钮本身的高度。 我还尝试用容器或 sizedBox 包装它,如答案here 中所示,但它没有做出任何可见的变化(按钮仍然填充了整个 appBar 的高度)

如果有人能向我解释为什么代码会这样,我将不胜感激。

      appBar: AppBar(
      automaticallyImplyLeading: false,
      title: Text(widget.title),
      actions: <Widget>[
        Padding(
            padding: EdgeInsets.only(top: 7.0, bottom: 7),
            child: Container(
              width: 80,
              child: FlatButton(
                  shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.circular(5.0),
                  ),
                  color: Color.fromRGBO(58, 90, 128, 1),
                  onPressed: () ,
                  child: Text('Button')
              ),
            )
        ),
        ]
  )

【问题讨论】:

【参考方案1】:

我认为AppBar() 正在关注material design guidelines for AppBar。

这也与 Material Scaffold() 小部件有关。

你可以看看这个文档

AppBar Class Scaffold Class

在这种特殊情况中,我认为控制高度的最佳方法是使用Padding()。您可以在代码中擦除容器。

appBar: AppBar(
    automaticallyImplyLeading: false,
    title: Text(widget.title),
    actions: <Widget>[
      Padding(
        padding: const EdgeInsets.all(8.0),
        child: FlatButton(
            shape: RoundedRectangleBorder(
              borderRadius: BorderRadius.circular(5.0),
            ),
            color: Color.fromRGBO(58, 90, 128, 1),
            onPressed: () ,
            child: Text('Button')),
      ),
    ]),

您可以使用PreferredSize() 控制整个 AppBar 的大小,但这与按钮的高度无关。

【讨论】:

以上是关于无法在颤动中更改按钮的高度的主要内容,如果未能解决你的问题,请参考以下文章

react native flatlist 高度无法自动更改

如何在具有颤动的可滚动视图中使用具有可变高度内容的TabView?

如何限制可拖动滚动表根据其子高度在颤动中获取高度?

在颤动中使用其 GlobalKey 获取 Widget 的高度

更改 svg 文件的宽度和高度

在垂直列表视图中颤动动态高度水平列表视图