SizedBox 可以解决问题。将按钮用 SizedBox 包裹起来。
来自文档:
如果给定了 child,该小部件会强制其子项具有特定的宽度和/或高度(假设此小部件的父级允许这些值)。 如果宽度或高度为 null,则此小部件将在该维度上调整大小以匹配子项的大小。
如果没有给定 child,则此小部件将根据给定的宽度和高度调整大小,将 null 视为零。
对于 RaisedButton 也适用。
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'My Layout',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("SizedBox Demo"),
),
body: new Center(
child: new SizedBox(
width: 200.0,
height: 80.0,
child: new OutlineButton(
borderSide: BorderSide(width: 4.0),
child: Text('I am a button'),
onPressed: (() {})),
),
),
);
}
}
更新(2018/05/26):
如果您想要减小位于AppBar内部的OutlineButton的高度,请使用Padding。
return Scaffold(
appBar: AppBar(
title: Text('Test'),
actions: <Widget> [
Padding(
child: OutlineButton(
borderSide: BorderSide(width: 4.0)
child: Text('Hi'),
onPressed: (){},
padding: EdgeInsets.all(10.0),
),
),
],
),
body: Container(),
);
AppBar
中。我没有想到这会影响它,但看起来确实如此。它锁定了高度。 - Jus10