SizedBox должен сделать эту работу.Оберните вашу кнопку с помощью SizedBox.
Из документа:
Если задан дочерний элемент, этот виджет заставляет его дочерний элемент иметь определенную ширину и / или высоту (при условии, что значения разрешены родительским элементом этого виджета).Если ширина или высота равна нулю, размер этого виджета будет соответствовать размеру дочернего элемента в этом измерении.Если дочерний элемент не задан, этот виджет изменится до заданной ширины и высоты, обрабатывая нули как ноль.
Это будет работать и для 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):
Если вы хотите уменьшить высоту OutlineButton внутри AppBar, думаю, вы можете использовать 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(),
);