Флаттер Изменить высоту OutlineButton внутри AppBar? - PullRequest
0 голосов
/ 20 мая 2018

Просто интересно, как бы я изменил высоту OutlineButton?Я предполагаю, что это, вероятно, применимо и к другим типам кнопок.

return Scaffold(
  appBar: AppBar(
    title: Text('Test'),
    actions: <Widget> [
      SizedBox(
        width: 100.0,
        height: 8.0,
        child: OutlineButton(
          borderSide: BorderSide(width: 4.0)
          child: Text('Hi'),
          onPressed: (){},
        ),
      ),
    ],
   ),
  body: Container(),
);

Я считаю, что кнопка примерно на 8px слишком высока для моего случая, и хочу немного ее сжать.

1 Ответ

0 голосов
/ 25 мая 2018

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(),
);
...