无法在Flutter中更改按钮的高度

17 浏览
0 Comments

无法在Flutter中更改按钮的高度

我刚开始使用Flutter。我想在“AppBar”中插入一个简单的“包含按钮”,上面有文本。\n(例如Material Design中的“包含按钮”在这里)\n问题是,无论我在构造函数中插入什么高度,按钮仍然填充整个AppBar的高度。\n我可以通过在下面的示例中设置padding来解决这个问题,但我不明白为什么我不能更改按钮本身的高度,这让我感到沮丧。\n我还尝试使用容器或SizedBox将其包装起来,就像这里的答案中所示,但没有任何可见的变化(按钮仍然填充整个AppBar的高度)。\n如果有人能够解释代码为什么会这样的话,我将非常感激。\n appBar: AppBar(\n automaticallyImplyLeading: false,\n title: Text(widget.title),\n actions: [\n Padding(\n padding: EdgeInsets.only(top: 7.0, bottom: 7),\n child: Container(\n width: 80,\n child: FlatButton(\n shape: RoundedRectangleBorder(\n borderRadius: BorderRadius.circular(5.0),\n ),\n color: Color.fromRGBO(58, 90, 128, 1),\n onPressed: () {},\n child: Text(\'Button\')\n ),\n )\n ),\n ]\n )\n

0
0 Comments

在Flutter中无法更改按钮的高度的原因是AppBar部件遵循Material Design设计准则,并与Material Scaffold部件相关联。为了解决这个问题,可以使用Padding()将按钮包裹起来来控制高度。

在特定的情况下,最好的方法是在按钮周围使用Padding()。可以删除代码中的Container部件。

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

以下是解决方法的代码示例:

appBar: AppBar(

automaticallyImplyLeading: false,

title: Text(widget.title),

actions: [

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')),

),

]),

请注意,这个解决方法适用于特定的情况,如果遇到其他情况可能需要使用不同的方法。

0